我正在为我的Java应用程序使用swing菜单。我也有MySQL数据库。在数据库的一个表中有一个列(名为brind),该列必须具有唯一值(除了ID列,其中值是自动插入的)。因此,通过我的JFrame表单上的文本字段,我将尝试在该表中插入一些值,但前提是该表中尚未存在该brind值(即,在列中)。我需要只有一个mysql查询,称之为条件插入。我该怎么做呢? 感谢
答案 0 :(得分:1)
如下所示的查询应该按照您的要求进行:
INSERT INTO `thetable`
SELECT 'values', 'to', 'insert'
WHERE NOT EXISTS (
SELECT *
FROM `thetable`
WHERE brind='whatever'
)
values,to,insert
应替换为您要插入的字段的值。
但是,你可以通过这里的其他一些建议得到更好的服务,例如
在我看来,选项2是一个不错的选择。
答案 1 :(得分:0)
REPLACE INTO myTable
SET brind = 'someValue'
我认为你有数据库设计问题。如果列brind必须是唯一的,那么它应该可以作为主键。
答案 2 :(得分:0)
将尝试在该表中插入一些值,但仅限于该brind 值不存在于表中(即列中)
可以在数据库级别和应用程序级别完成。
由于数据库级别最简单,最安全。在该列上创建一个索引并使其唯一(而不是标识符!),如果该值已存在,则不会插入数据库。 Here是如何做到的。
应用程序级别:您将缓存数据库的内容,并锁定表,禁止其他应用程序修改它。如果你想要和解锁表格,请插入它。
我建议第一个解决方案