私は以下のようなテーブルを持っています。それはまだMySQLの2つの列のタイムスタンプのデフォルトNOW値1067
mysql> SELECT @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
を与えている:here私の出力を指摘して私のsql_modeのがNO_ZERO_DATE
が含まれていません
CREATE TABLE IF NOT EXISTS mytable (
id INT NOT NULL AUTO_INCREMENT ,
create_date TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00' ,
update_date TIMESTAMP NULL DEFAULT NOW() ON UPDATE NOW() ,
PRIMARY KEY (`parti_id`))
ENGINE = InnoDB;
hereを示すようになりました1つのデフォルト
のMySQLの列制限を回避するために、私は、チップを使用しました
ERROR 1067 (42000) at line xx in file: '/myschema.sql': Invalid default value for 'create_date'
私はMySQL 5.1.37を使用していますUbuntu
どうすれば修正できますか?ありがとう。
の更新を試すことができ、それは機能です: 「テーブル内の1つのTIMESTAMP列の場合、デフォルト値と自動更新値として現在のタイムスタンプを割り当てることができます現在のタイムスタンプをカラムを初期化するためのデフォルト値、自動更新値、またはその両方にすることは可能ですが、現在のタイムスタンプを1つのカラムのデフォルト値にすることはできません。 " –
これが「バグ」かどうかの議論は、これが深刻な迷惑であるために残っています。 2つ目の列を自動更新してnow()のデフォルトで2つのタイムスタンプ列を持たないのはなぜですか?答えは、MySQLはそうしないということです。私は実際にその機能を呼びません。 –
あなたの返事のためにランディーに感謝します。私はあなたが提供したリンクを知っています。私は回避策を探します。しかし、インターネット上に表示されるすべてのトリックは機能しないようです。 –