仅插入一列的不同值

时间:2012-08-18 06:44:35

标签: mysql insert unique-constraint distinct-values

id   |   a   |      b      |
-----------------------------
1    |  xyz  |     abc     |

这是我的表的结构。id列是AUTO_INCREMENT。 我想仅在'b'不是abc的表格中插入这些数据。 例如 -

这不应该插入任何内容:

insert into table_name(`a`,`b`) values("xyz","abc");

但是这应该插入新记录:

这应该只检查列b

insert into table_name(`a`,`b`) values("xyz","zzzz");

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以在UNIQUE

上添加column b个约束

当为插入提供重复值时,它会抛出SQL异常,而不是插入,您可以在PHP中处理此异常

答案 1 :(得分:1)

您的选择:
1.在列b的插入查询中使用unique() 2.运行快速SELECT查询以检查现有列(最不喜欢)它也可以使用if子句嵌入到更新查询中

参考How to 'insert if not exists' in MySQL?