我试图在特定情况下跳过INSERT
,其中两个参与值中的一个是特定值:
// this can work if Beech allready exists
INSERT IGNORE INTO my_table (col_wood_name, col_type)
VALUES ("Beech", 0)
// this should be skipped if Beech allready exists with col_type = 1
INSERT IGNORE INTO my_table (col_wood_name, col_type)
VALUES ("Beech", 1)
my_table:
id col_wood_name col_type other_column_1 other_column_2 etc_cols
1 Beech 0 ... ... ...
2 Fir 0 ... ... ...
3 Beech 1 ... ... ...
4 Pine 1 ... ... ...
5 Beech 1 // here is my problem, how can I avoid to insert a tree if col_type == 1?
6 Beech 0 // it's ok because col_type == 0
如果col_type
== 1?
我知道我可以使用以下内容在col_wood_name
和col_type
创建唯一键:
ALTER TABLE my_table ADD UNIQUE(col_wood_name, col_type);
但这是不完整的,因为只有在col_type
为1
时这才有效,我该如何解决?
答案 0 :(得分:0)
可能有多少种不同的col_type?
我问因为设计原因。如果表中只有两列,我没看到不对两个字段执行唯一约束会有什么好处。
答案 1 :(得分:0)
AFAIK,在一个查询中无法做到这一点。在您的应用程序中使用存储过程或其他查询。