Jawaban:
MySQL saya mengatakan "Definisi tabel salah; hanya ada satu kolom otomatis dan itu harus didefinisikan sebagai kunci " Jadi ketika saya menambahkan kunci utama seperti di bawah ini mulai berfungsi:
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);
Pesan kesalahan lengkap berbunyi:
ERROR 1075 (42000): Definisi tabel salah; hanya ada satu kolom otomatis dan harus didefinisikan sebagai kunci
Jadi tambahkan primary key
ke auto_increment
bidang:
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;
Perhatikan juga bahwa "kunci" tidak selalu berarti kunci utama . Sesuatu seperti ini akan berhasil:
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;
Ini adalah contoh yang dibuat-buat dan mungkin bukan ide terbaik, tetapi bisa sangat berguna dalam kasus tertentu.
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