Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新运行mysql升级脚本_Mysql_Mysql Management - Fatal编程技术网

重新运行mysql升级脚本

重新运行mysql升级脚本,mysql,mysql-management,Mysql,Mysql Management,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

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;

谢谢。

也许您可以将数据库架构修订版存储在合适的表中,并将其用作更新处理的标准?

也许您可以将数据库架构修订版存储在合适的表中,并将其用作更新处理的标准?

我们使用类似SQL Server的结构

IF 0 = (SELECT COUNT(*) FROM <your table> WHERE <your condition>)
BEGIN
    <your work here>
END

要管理SQL部分,我们需要可重复的。如果重新运行脚本,并且存在值,则计数*不是零,并且不会再次执行此操作。

我们使用类似SQL Server的构造

IF 0 = (SELECT COUNT(*) FROM <your table> WHERE <your condition>)
BEGIN
    <your work here>
END

要管理SQL部分,我们需要可重复的。如果重新运行脚本且存在值,则计数*不是零,并且不会再次执行此操作。

您可以使用:

INSERT IGNORE INTO t1 ...

您可以从返回中看到是否插入了行。请注意,它要求有一个唯一的约束,否则您只会得到重复的约束。如果您有主键,这也是唯一的约束。

您可以使用:

INSERT IGNORE INTO t1 ...
insert into myTable(name)
select 'some_name_value' from myTable
where not exists (select 1 from myTable where name = 'some_name_value')
limit 1;
您可以从返回中看到是否插入了行。请注意,它要求有一个唯一的约束,否则您只会得到重复的约束。如果您有主键,这也是唯一的约束

insert into myTable(name)
select 'some_name_value' from myTable
where not exists (select 1 from myTable where name = 'some_name_value')
limit 1;
如果值不存在,将插入这些值


如果不存在,则会插入值。

查看MySQL手册,您可以在其中找到控制结构下所需的所有内容查看MySQL手册,您可以在其中找到控制结构下所需的所有内容这似乎是最有希望的,但它是否依赖于特定版本的MySQL?它在5.0中似乎不起作用。。。你能提供一个更完整的例子吗?正如我提到的,语法来自SQL Server。这项技术应该可以翻译。我不知道MySql为流控制提供了什么样的过程语言,比如t/SQL。这似乎是最有希望的,但它是否依赖于特定版本的MySql?它在5.0中似乎不起作用。。。你能提供一个更完整的例子吗?正如我提到的,语法来自SQL Server。这项技术应该可以翻译。我不知道MySql为流控制提供了什么过程语言,比如t/SQL。