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

MySQLの既存の列からONUPDATECURRENT_TIMESTAMPを削除するにはどうすればよいですか?


ON UPDATE CURRENT_TIMESTAMPは、明示的なタイムスタンプなしで更新すると、現在のタイムスタンプ値が更新されることを定義します。

ALTERコマンドを使用して、列からONUPDATECURRENT_TIMESTAMPを削除できます。

構文は次のとおりです

ALTER TABLE yourTableName
CHANGE yourTimeStampColumnName yourTimeStampColumnName timestamp NOT
NULL default CURRENT_TIMESTAMP;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです

mysql> create table removeOnUpdateCurrentTimeStampDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > Name varchar(20),
   - > UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
   - > );
Query OK, 0 rows affected (0.54 sec)

DESCコマンドを使用してテーブルの説明を確認してください。

クエリは次のとおりです

mysql> desc removeOnUpdateCurrentTimeStampDemo;

以下は出力です

+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Field               | Type        | Null | Key | Default           | Extra                       |
+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment              |
| Name                | varchar(20) | YES  |     | NULL              |                             |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------------+-------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.04 sec)

次に、更新CURRENT_TIMESTAMPにあるExtraフィールドを確認します。 ONUPDATECURRENT_TIMESTAMPを削除するクエリは次のとおりです。

mysql> alter table removeOnUpdateCurrentTimeStampDemo
   - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

テーブルの説明をもう一度確認してください。

クエリは次のとおりです

mysql> desc removeOnUpdateCurrentTimeStampDemo;

以下は出力です

+---------------------+-------------+------+-----+-------------------+----------------+
| Field               | Type        | Null | Key | Default           | Extra          |
+---------------------+-------------+------+-----+-------------------+----------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment |
| Name                | varchar(20) | YES  |     | NULL              |                |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
+---------------------+-------------+------+-----+-------------------+----------------+
3 rows in set (0.00 sec)

デフォルトのCURRENT_TIMESTAMPを削除する場合、クエリは次のようになります

mysql> alter table removeOnUpdateCurrentTimeStampDemo
   - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL;
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

テーブルの説明をもう一度確認してください。

クエリは次のとおりです

mysql> desc removeOnUpdateCurrentTimeStampDemo;

以下は出力です

+---------------------+-------------+------+-----+---------+----------------+
| Field               | Type        | Null | Key | Default | Extra          |
+---------------------+-------------+------+-----+---------+----------------+
| Id                  | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name                | varchar(20) | YES  |     | NULL    |                |
| UserUpdateTimestamp | timestamp   | NO   |     | NULL    |                |
+---------------------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

上記のサンプル出力を見てください。ONUPDATECURRENTTIMESTAMPを削除しました。


  1. MySQLの日付型列を更新するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1451    -> (    -> JoiningDate date    -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1451 values('2019-07-21'); Query OK, 1 row affected (0.07

  2. MySQLで列名として「from」を作成するにはどうすればよいですか?

    「from」は予約語であるため、バッククォート記号を使用して列名と見なします。ここで、予約語をバックティックで囲んだテーブルを作成します- mysql> create table DemoTable1810      (      `from` varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1810 v