1
A
回答
2
在這種情況下,您應該真的創建另一個表。
E.g.
CREATE TABLE `Calls` (
`Id` INT(10) AUTO_INCREMENT,
`From` VARCHAR(100) NOT NULL,
`To` VARCHAR(100) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=INNODB;
CREATE TABLE `CallHistory` (
`Id` INT(15) AUTO_INCREMENT,
`CallId` INT(10) NOT NULL,
`Text` VARCHAR(255) NOT NULL,
PRIMARY KEY (`Id`),
KEY `CallHistory_Calls_idx` (`CallId`),
CONSTRAINT `CallHistory_Calls`
FOREIGN KEY (`CallId`)
REFERENCES `calls` (`Id`)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=INNODB;
這裏是關於SQLFiddle的a demo。
這樣做的好處是,如果從Calls
刪除一行,CallHistory
中的行也將被刪除。
運行此查詢:
SELECT `Calls`.`Id`,
`Calls`.`From`,
`Calls`.`To`,
`CallHistory`.`Text`
FROM `Calls`, `CallHistory`
WHERE `Calls`.`Id` = `CallHistory`.`CallId`;
給出的結果是這樣的:?
0
這應該工作:
id int NOT NULL AUTO_INCREMENT
反正我看不出,除非你更新現有的值不會留下獨特的後
0
是的,你需要設置auto_increment
約束:
CREATE TABLE `test` (
`testID` int(11) NOT NULL, //primary key here
`testInc` int(11) NOT NULL AUTO_INCREMENT, //here is your non-primary auto increment column
PRIMARY KEY (`testID`),
KEY `testInc` (`testInc`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
如果您希望此功能也是唯一的,那麼您可以添加唯一約束:
ALTER TABLE `test` ADD CONSTRAINT ux_unique_constraint UNIQUE `testInc`
相關問題
- 1. 自動增加ID
- 2. ID有自動增量,但也有另一列增量,但不像自動增量
- 3. GetElementsById中自動增加ID
- 4. pymssql INSERT不會自動增加ID
- 5. PostgreSQL表id不會自動增加
- 6. JPA自動遞增屬性但不是ID
- 7. 在不同循環中增加一個屬性id,但id必須在XSLT中是唯一的
- 8. SQLite:自動增加一個ID增加2
- 9. 如何從自動遞增的整數生成唯一的ID?
- 10. jdbcTemplate.update自動遞增和唯一ID字段
- 11. MySQL:通用自動遞增產品ID和客戶唯一自動遞增產品ID
- 12. 某些表ID列不會自動增加,儘管是身份
- 13. 自動遞增ID
- 14. jQuery從1而不是0設置唯一的ID值增量
- 15. 基於另一個表的唯一ID自動增加表格的字母數字ID
- 16. 插入mssql後自動增加id
- 17. 如何強制id自動增加
- 18. Set/Change Rails id自動增加值
- 19. 。我如何自動增加ID?
- 20. PHP - CSV導入自動增加ID
- 21. 如何自動增加Id字段
- 22. 自動增加C#容器ID
- 23. 'rowid'列不是自動增加的
- 24. 使用COBOL自動生成唯一ID
- 25. Magento - 數據未插入數據庫,但ID是自動增加的
- 26. 無法主鍵/唯一鍵/自動遞增加入此列
- 27. Oracle - 如何創建一個具有自動增量唯一鍵ID的表格
- 28. MySQL是不接受唯一約束,同時具有自動遞增另一列
- 29. 實體框架自動遞增場,這是不是ID
- 30. 如何用Selenium點擊此按鈕但ID不是唯一的
爲什麼........... –
你是什麼意思通過「不是主要的還是獨特的」? –
你可以有id,not_uniuqe_id,其他鍵 – elibyy