在mysql中有没有办法编写可重新运行的sql脚本? 我试过:'IF EXISTS'语法,但这似乎只适用于存储过程。 似乎'select if'语法不能满足我的需要。
理想情况下,我想做类似的事情:
IF NOT EXISTS (select * from table where name='Name') Then insert into table values('Name');
else select 'Name has already been inserted into table';
end if;
感谢。
答案 0 :(得分:1)
您可以使用:
INSERT IGNORE INTO t1 ...
您可以从返回中看到是否插入了行。请注意,它要求存在唯一约束,否则您将获得重复。如果您有主键,这也是一个唯一约束。
答案 1 :(得分:0)
也许您可以将数据库架构修订存储在合适的表中,并将其用作更新处理的标准?
答案 2 :(得分:0)
insert into myTable(name)
select 'some_name_value' from myTable
where not exists (select 1 from myTable where name = 'some_name_value')
limit 1;
如果它们尚不存在,则会插入值。
答案 3 :(得分:-2)
我们使用类似(SQL Server)的构造
IF 0 = (SELECT COUNT(*) FROM <your table> WHERE <your condition>)
BEGIN
<your work here>
END
管理我们想要重复的SQL部分。如果脚本重新运行并且值在那里,则count(*)不为零,并且它不会再次工作。