sql >> Database >  >> RDS >> Mysql

MySQL InnoDB:niet-primaire sleutel automatisch verhogen

Ja dat kan. Je hoeft alleen maar van die kolom een ​​index te maken.

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'
);

Zal rijen invoegen met automatisch oplopende waarden voor 'testInc'. Dit is echter heel dom om te doen.

Je zei al hoe je het op de juiste manier moet doen:

"Maak de comment_id PK en dwing integriteit af via een unieke index op book_id, timestamp, user_id."

Dat is precies de manier waarop je het zou moeten doen. Het geeft je niet alleen een goede primaire sleutel voor de tabel die je nodig hebt voor toekomstige vragen, het voldoet ook aan het principe van de minste verbazing .



  1. Hoe performant is uw ProxySQL-knooppunt?

  2. Rijen tellen voor alle tabellen tegelijk

  3. Hoe voer ik realtime database-polling uit in MySQL/PHP?

  4. Selecteer rij met meest recente datum per gebruiker