我的MySQL数据库表存在问题。它看起来像这样:
Images
------------
id
name
page_name
filename
我不希望此表的两个条目具有相同的" page_name"和"文件名" (这些字段属于VARCHAR类型)。我这样做了:
alter table images add constraint page_image unique(page_name, filename);
这似乎工作正常,但由于这种限制,我经常不允许添加条目,我不明白为什么。这是我目前在此表中的内容:
id | name | page_name | filename |
187 | 59179246_XL.jpg | | $1$sJY8OY2y$Sbl3TdqfuDmzuct4uq1Dr0.jpg |
188 | 21287471_L.jpg | | $1$RYqR0EWw$zj9e2bccgx7yRoAfZTaL.jpg |
189 | 59179246_XL.jpg | Home page | $1$sJY8OY2y$Sbl3TdqfuDmzuct4uq1Dr0.jpg |
190 | 59195969_L.jpg | | $1$Nl2k4xlG$b8M3BZqo8ndfRB04nk2J.jpg |
211 | 59195969_L.jpg | Tarif | $1$Nl2k4xlG$b8M3BZqo8ndfRB04nk2J.jpg |
但以下查询无法运作:
insert into images(name, page_name, filename) select name, 'Tarif', filename from images where name like '59179246_XL%';
我收到此错误消息:
ERROR 1062 (23000): Duplicate entry 'Tarif-$1$sJY8OY2y$Sbl3TdqfuDmzuct4uq1Dr0.jpg' for key 'page_image'
为什么我收到此消息?