mysql - 您可以创建一个不是存储过程的通用脚本吗?

标签 mysql database

我有一些使用 SQL Server 2005 的经验,并且编写过许多只有 BEGIN 语句和 END 语句的脚本。我可以使用循环、游标等逻辑。但是,如果不创建存储过程,我似乎无法在 MySQL 中执行此操作。我知道 MySQL 中的存储过程是新的,可能不如 SQL Server 那样强大,但无论如何,有没有办法创建一个通用脚本,我知道我只想运行一次,这样我就不必返回到我的数据库并稍后删除所有这些存储过程?

为了澄清一点我想做的是创建一个脚本来创建多个 talbes,例如

BEGIN 
   CREATE TABLE foo(id INT, data VARCHAR(100)); 
   CREATE TABLE test(t_id INT, data VARCHAR(50)); 
END;

这在 MySQL 中可能吗?

最佳答案

您不需要 MySQL 中的 beginend 关键字,以下内容即可工作:

CREATE TABLE foo(id INT, data VARCHAR(100));
CREATE TABLE test(t_id INT, data VARCHAR(50));

您还可以使用 if notists 子句来确保在表已存在时不会出现错误:

CREATE TABLE IF NOT EXISTS foo(id INT, data VARCHAR(100));
CREATE TABLE IF NOT EXISTS test(t_id INT, data VARCHAR(50));

关于mysql - 您可以创建一个不是存储过程的通用脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508859/

相关文章:

php - 照亮\数据库\QueryException : SQLSTATE[HY000] [2002] Connection refused default character set utf8mb4 collate utf8mb4_unicode_ci

mysql - 以 5 组返回特定​​ ID 的 SQL

php - 在其他表中使用关系表的 ID

c# - 在 SQLite 中向表添加时间戳字段

sql - "Missing Keyword"在 Oracle SQL Developer 中创建表时

mysql - 遍历子查询结果以查询同一个表

mysql - 如何在VB.NET中连接 Crystal 报表和MySQL

javascript - 如何使用 Sequelize.js 解析复杂的查询操作?

sql - 如何找到数据库条目之间的循环?

database - PostgreSQL:无法在规则的内部查询中引用 NEW