Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL InnoDB:kunci non-utama peningkatan otomatis

Ya kamu bisa. Anda hanya perlu menjadikan kolom itu sebagai indeks.

CREATE TABLE `test` (
  `testID` int(11) NOT NULL,
  `string` varchar(45) DEFAULT NULL,
  `testInc` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`testID`),
  KEY `testInc` (`testInc`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


insert into test(
  testID,
 string
)
values (
1,
    'Hello'
);


insert into test( 
testID,
 string
)
values (
2,
    'world'
);

Akan menyisipkan baris dengan nilai peningkatan otomatis untuk 'testInc'. Namun ini adalah hal yang sangat bodoh untuk dilakukan.

Anda sudah mengatakan cara yang benar untuk melakukannya:

"Buat PK comment_id dan terapkan integritas melalui indeks unik di book_id, timestamp, user_id."

Itulah cara yang harus Anda lakukan. Ini tidak hanya memberi Anda kunci utama yang tepat untuk tabel yang Anda perlukan untuk kueri di masa mendatang, tetapi juga memenuhi prinsip paling tidak heran .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menangani Latensi dalam Transaksi MySQL

  2. MySQL:Kesalahan menjatuhkan basis data (errno 13; errno 17; errno 39)

  3. Cara mencari angka pasti di php

  4. Konversi MySQL ke SQLite

  5. Bagaimana cara memperbarui zona waktu untuk stempel waktu (created_at dan updated_at) yang dikelola oleh Laravel Eloquent?