我有一个问题。
所以我有一个添加功能,用户可以在这里添加汽车到数据库。如何在添加汽车时进行检查,以便在汽车存在的情况下 - 数据被覆盖,而不是出现“重复错误”等错误消息?
所以我有......
INSERT INTO Cars VALUES (1, "AUDI R8", 10);
如何在用户输入(1,“BMW X5,15)时,它会覆盖当前数据?
我如何同时拥有INSERT INTO和UPDATE STATEMENT?另外我如何在这里使用交易?
非常感谢
答案 0 :(得分:0)
对于这种情况,MySQL有一个REPLACE
语句:
REPLACE
与INSERT
完全相同,只是如果表中的旧行与PRIMARY KEY
或UNIQUE
索引的新行具有相同的值,在插入新行之前删除旧行[...]
REPLACE
是SQL标准的MySQL扩展。它可以插入,删除和插入。
答案 1 :(得分:0)
嗯,这个问题的最佳解决方案是 TRIGGERS 。 触发器允许您将应用程序层与数据库分开。 在您的情况下,您需要启动一个错误,因此这是一个名为“被动”的触发器,只有在违反条件时才会自动响应。 看看这个:https://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html或各种相关文档。
答案 2 :(得分:0)
也许不是最好的解决方案,但是你可以先做一个SELECT,然后做一个UPDATE或简单的INSERT,取决于案例。