Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL InnoDB:непървичен ключ с автоматично нарастване

Да, можеш. Просто трябва да направите тази колона индекс.

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

Ще вмъкне редове с автоматично нарастващи стойности за 'testInc'. Това обаче е наистина глупаво нещо.

Вече казахте правилния начин да го направите:

„Направете comment_id PK и наложете целостта чрез уникален индекс на book_id, timestamp, user_id.“

Точно по този начин трябва да го правите. Той не само ви предоставя правилен първичен ключ за таблицата, който ще ви е необходим за бъдещи заявки, но също така удовлетворява принципът на най-малкото учудване .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Правете закъснение / цикъл, за да получите 10 произволни резултата

  2. Релевантността на пълнотекстово търсене се измерва в?

  3. MySQL:транзакция в рамките на съхранена процедура

  4. MySQL:Групиране по две колони и сумиране

  5. Полета за времеви отпечатъци в django