mysql エラー 1293 のメッセージは次のとおりです。
SQL エラー (1293): テーブル定義が正しくありません。DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つだけ存在できます
mysql が、テーブルごとに DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ 1 つの TIMESTAMP 列のみを許可する理由は何ですか。
mysql エラー 1293 のメッセージは次のとおりです。
SQL エラー (1293): テーブル定義が正しくありません。DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ TIMESTAMP 列は 1 つだけ存在できます
mysql が、テーブルごとに DEFAULT または ON UPDATE 句で CURRENT_TIMESTAMP を持つ 1 つの TIMESTAMP 列のみを許可する理由は何ですか。
「現在」にデフォルト設定できる TIMESTAMP フィールドは 1 つだけです。最初に言っておきますが、CURRENT_TIMESTAMP または「現在デフォルト」を使用して複数の MySQL TIMESTAMP フィールドを定義しようとしている場合、残念ながらそれは好ましくありません。MySQL では実行できません。 次のようなテーブルを作成しようとすると、この MySQL TIMESTAMP エラーが発生しました。
create table users (
id int unsigned auto_increment not null primary key,
username varchar(50) not null unique,
password varchar(40) not null,
email_address varchar(128) not null unique,
email_sent timestamp not null,
last_login timestamp not null default now()
) ENGINE = InnoDB;
この問題を最初に解決したとき、MySQL では「CURRENT_TIMESTAMP (デフォルトでは現在)」フィールドを他の TIMESTAMP フィールドの前に宣言する必要があると考えたので、次のように問題を解決しました。
create table users (
id int unsigned auto_increment not null primary key,
username varchar(50) not null unique,
password varchar(40) not null,
email_address varchar(128) not null unique,
last_login timestamp not null default now(),
email_sent timestamp not null
) ENGINE = InnoDB;