我有一个带有
的MySQL innodb table (sqlfiddle demo)
id
,name_id
,name
,content
内容如
1, NULL, 'Brian', 'Bridge to terabithia'
2, NULL, 'Brian', 'Pulp fiction'
3, NULL, 'Brian', 'Trainspotting'
4, NULL, 'Luke', 'Watchmen'
5, NULL, 'Luke', 'Constantine'
6, NULL, 'Tony', 'Dark knight'
7, NULL, 'Tony', 'Shutter Island'
8, NULL, 'John', 'Machinist'
9, NULL, 'John', 'Matrix'
10, NULL, 'John', 'Sin city'
11, NULL, 'John', 'Mad Max'
id
对每一行都是唯一的。但我无法得到,如何为每个唯一名称设置auto_increment name_id
。
Here's (sqlfiddle)我正在努力实现的目标。
1, 1, 'Brian', 'Bridge to terabithia'
2, 1, 'Brian', 'Pulp fiction'
3, 1, 'Brian', 'Trainspotting'
4, 2, 'Luke', 'Watchmen'
5, 2, 'Luke', 'Constantine'
6, 3, 'Tony', 'Dark knight'
7, 3, 'Tony', 'Shutter Island'
8, 4, 'John', 'Machinist'
9, 4, 'John', 'Matrix'
10, 4, 'John', 'Sin city'
11, 4, 'John', 'Mad Max'
是否可以只使用MySQL? 谢谢你的阅读。
答案 0 :(得分:4)
简短的回答是,您不能仅使用auto_increment
自动执行此操作,您可能也不应该这样做。
如果真的有理由这样做,那么最好规范化数据库,创建“名称”表(name_id PK,名称)并从该表中删除“name”列。老实说,我不确定在你的例子中你可以从中获得什么,但我想这可能是问题的抽象。