回答:
私のMySQLは「テーブル定義が正しくありません。自動列は1つしか存在できず、キーとして定義する必要があります」なので、以下のように主キーを追加すると、機能し始めました。
CREATE TABLE book (
id INT AUTO_INCREMENT NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL,
primary key (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE book ADD id INT AUTO_INCREMENT NOT NULL, ADD PRIMARY KEY (id);
完全なエラーメッセージが鳴ります。
エラー1075(42000):テーブル定義が正しくありません。自動列は1つしか存在できず、キーとして定義する必要があります
したがってprimary key
、auto_increment
フィールドに追加します。
CREATE TABLE book (
id INT AUTO_INCREMENT primary key NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
「キー」は必ずしも主キーを意味するわけではないことにも注意してください。このようなものはうまくいきます:
CREATE TABLE book (
isbn BIGINT NOT NULL PRIMARY KEY,
id INT NOT NULL AUTO_INCREMENT,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL,
INDEX(id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
これは人為的な例であり、おそらく最良のアイデアではありませんが、場合によっては非常に役立ちます。