使用MySQL

时间:2015-04-28 16:56:09

标签: mysql unique-constraint

我的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'

为什么我收到此消息?

0 个答案:

没有答案