我有3个语句,我想把它们合并成一个;这样我就可以知道这样做有没有必要?
插入
INSERT INTO plants (name, latin_name, type, stock, price, flower_colour, foilage_colour, features, sun_exposure, soil_type, hardiness, competance, height, spread, description, flowering_season)
VALUES
(dandelion, `Taraxacum officinale`, weed, 12, 1.99, white, green, flower, `full sun`, alkaline, `annual hardy`, low, 12cm, 7cm, d, summer)
更新
UPDATE plants SET flower_colour='white', soil_type='clay', height='15cm', spread='4cm', description='Weed' AND price='£1.99'
删除
DELETE FROM plants WHERE name='dandelion' AND type='weed'
发布于 2013-01-08 03:24:59
这对你的RDBMS来说是不可能的。
发布于 2013-01-08 03:20:20
我要问的第一个问题是:“你为什么要这样做?”给定您的示例,您可以插入、更改,然后删除一个条目。除非存在诸如触发器之类的隐藏逻辑来更新数据的其他元素,否则数据层的状态不会因为这三个命令的执行而改变。
此外,您的UPDATE语句在语法上不正确;AND
只能在WHERE
或HAVING
子句中使用,所以我认为您在那里错误地遗漏了一些东西。
没有任何方法可以将插入、更新和删除合并到一个命令中。您通常可以将所有这三个命令作为一个“脚本”从您正在使用的代码层发送,或者将这些SQL命令封装到一个存储过程中并执行它,但是每个语句对底层数据执行的操作非常不同,这就是为什么它们一开始就是不同的命令。
https://stackoverflow.com/questions/14202468
复制相似问题