Firebird使用ZeosLib和Delphi插入不同的数据
我正在使用Zeos 7和Delphi 2009,希望在将数据发布到数据库之前,检查数据库中特定字段下是否已经存在值 示例:字段关键字Firebird使用ZeosLib和Delphi插入不同的数据,delphi,delphi-2009,firebird,zeos,Delphi,Delphi 2009,Firebird,Zeos,我正在使用Zeos 7和Delphi 2009,希望在将数据发布到数据库之前,检查数据库中特定字段下是否已经存在值 示例:字段关键字 奶酪、老鼠、陷阱的价值 tblkeywordKEYWORD.Value = Cheese 下面的问题是什么?还有更好的办法吗 zQueryKeyword.SQL.Add('IF NOT EXISTS(Select KEYWORD from KEYWORDLIST ='''+ tblkeywordKEYWORD.Value+''')INSERT into KE
奶酪、老鼠、陷阱的价值
tblkeywordKEYWORD.Value = Cheese
下面的问题是什么?还有更好的办法吗
zQueryKeyword.SQL.Add('IF NOT EXISTS(Select KEYWORD from KEYWORDLIST ='''+
tblkeywordKEYWORD.Value+''')INSERT into KEYWORDLIST(KEYWORD) VALUES ('''+
tblkeywordKEYWORD.Value+'''))');
zQueryKeyword.ExecSql;
我尝试在IBExpert中使用unique约束,但它给出了以下错误:
插入或更新值无效:对象列无效
约束-没有两个表行可以有重复的列值。
尝试在唯一索引“UNQ1\U关键字列表”中存储重复值(对活动事务可见)
考虑使用UPDATE或INSERT或MERGE语句:
update or insert into KEYWORDLIST (KEYWORD) values(:KEYWORD) matching(KEYWORD)
有关详细信息,请查看Firebird安装文件夹中的以下文档:
- doc\sql.extensions\README.update\u或\u insert.txt
- doc\sql.extensions\README.merge.txt
update or insert into KEYWORDLIST (KEYWORD) values(:KEYWORD) matching(KEYWORD)
有关详细信息,请查看Firebird安装文件夹中的以下文档:
- doc\sql.extensions\README.update\u或\u insert.txt
- doc\sql.extensions\README.merge.txt