插入现有行

时间:2014-01-18 14:55:11

标签: sql insert sql-update

如何在不创建新行的情况下插入字段

如果我理解:

我无法将insert用于where子句:

INSERT INTO consulta (tema)  
value('prova')  
WHERE client=1;

我可update使用where,但如果字段为空,我就无法这样做:

UPDATE consulta      
SET tema=prova  
WHERE client=1;

那么我应该如何在现有行中插入?

4 个答案:

答案 0 :(得分:1)

你想要其中一个吗?

UPDATE consulta
SET tema=prova
WHERE client is null;

UPDATE consulta
SET tema=prova
WHERE client = '';

"空"在SQL中没有技术含义,所以它可以是。

答案 1 :(得分:1)

我认为问题可能是你错过了你试图设置的值的引号。

尝试:

UPDATE consulta       
SET tema='prova'  
WHERE client=1;

答案 2 :(得分:0)

我认为你实际上正在尝试更新,插入到所有用于创建的内容,除非你使用替换,只有当表中的旧行与新行具有相同的值时才会覆盖你的行对于PRIMARY KEY或UNIQUE索引,(来自Mysql 5 reference但我不知道您正在使用哪个DBMS

从你的更新声明我看到prova没有'',也许这就是你的问题。

你应该使用: UPDATE consulta SET tema='prova' WHERE client=1;

答案 3 :(得分:0)

如果行已存在,则需要使用update语句 您可以在类的位置检查值为空。使用以下查询

update consultaSET tema='prova' WHERE tema='' and client=1