MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの他の列に値を挿入するときに、現在の日付と時刻を自動的に挿入するにはどうすればよいですか?


MySQLでは、列をDEFAULT CURRENT_TIMESTAMPとして宣言することにより、別の列に値を挿入するときに、現在の日付と時刻を列に自動的に挿入できます。

mysql> Create table testing
   -> (
   -> StudentName varchar(20) NOT NULL,
   -> RegDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
   -> );
Query OK, 0 rows affected (0.49 sec)

上記のクエリは、StudentNameという名前の列と、DEFAULTCURRENT_TIMESTAMPとして宣言された「RegDate」という名前の他の列を持つテーブル「testing」を作成します。これで、StudentName列に値、つまり名前を挿入すると、現在の日付と時刻がもう一方の列に自動的に挿入されます。

mysql> Insert into testing(StudentName) values ('Ram');
Query OK, 1 row affected (0.14 sec)

mysql> Insert into testing(StudentName) values ('Shyam');
Query OK, 1 row affected (0.06 sec)

mysql> Select * from testing;
+-------------+---------------------+
| StudentName | RegDate             |
+-------------+---------------------+
| Ram         | 2017-10-28 21:24:24 |
| Shyam       | 2017-10-28 21:24:30 |
+-------------+---------------------+
2 rows in set (0.02 sec)

mysql> Insert into testing(StudentName) values ('Mohan');
Query OK, 1 row affected (0.06 sec)

mysql> Select * from testing;
+-------------+---------------------+
| StudentName | RegDate             |
+-------------+---------------------+
| Ram         | 2017-10-28 21:24:24 |
| Shyam       | 2017-10-28 21:24:30 |
| Mohan       | 2017-10-28 21:24:47 |
+-------------+---------------------+
3 rows in set (0.00 sec)

上記のクエリから、StudentNameに値を挿入すると、日付と時刻も自動的に挿入されていることがわかります。

上記の概念の助けを借りて、他の列の値が挿入された日時を正確に知ることもできます。


  1. MySQLで現在の日付と時刻をタイムスタンプに設定する

    まず、テーブルを作成しましょう。列の1つがTIMESTAMP-として設定されています mysql> create table DemoTable648(    UserId int NOT NULL AUTO_INCREMENT,UserLoginTime TIMESTAMP NOT NULL    DEFAULT CURRENT_TIMESTAMP,PRIMARYKEY(UserId) ); Query OK, 0 rows affected (0.66 sec) 挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。ここでは、NO

  2. MySQLエントリが存在するかどうかを確認し、存在する場合は、他の列を上書きする方法を教えてください。

    これには、INSERT ON DUPLICATEKEYUPDATEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1891    (    FirstName varchar(20),    UNIQUE KEY(FirstName)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTab