【问题标题】:Building and Testing with MySQL Workbench for SSMS People使用 MySQL Workbench 为 SSMS 人员构建和测试
【发布时间】:2013-12-07 11:13:47
【问题描述】:

我非常喜欢 Microsoft 的 SQL Server 和 SQL Server Management Studio (SSMS)。

我正试图让我曾经在那里做的事情在 MySQL Workbench 中工作,但它给了我非常无益的错误。

目前,我正在尝试编写INSERT 语句。我想声明我的变量并用一些值对其进行测试,然后将最终结果转换为存储过程。

现在,我有一个不允许我继续的语法错误,并且错误消息也没有帮助:

语法错误,意外的 DECLARE_SYM

底部没有错误列表,也无法将错误的文本复制到剪贴板,所以必须在一个屏幕上研究,然后翻到这个屏幕,这样我就可以写下来了。

烦人!

MySQL documentation 肯定有我想要的东西,但我可以通过这样做比花费数周阅读他们的在线手册更快地学习。

DELIMITER $$

declare cGroupID char(6) DEFAULT = 'ABC123';
declare subGroupRecords int;
declare nDocTypeID int(11);
declare bDocActive tinyint(1) DEFAULT '1';
declare cDocID varchar(256) DEFAULT NULL;

  insert into dbo_connection.documents
  (group_id, subgroup_id, type_id, active, title, doc_id, priority, ahref, description, last_modified)
  values
  (cGroupID,cSubGroupID,nDocTypeID,bDocActive,cTitle,cDocID,0,ahref1, docDesc,NOW());

select * from dbo_connection.documents where group_id='ABC123';


END

所以,目前,我正在寻找 MySQL 不喜欢我的declare 语句的原因。

从长远来看,我有兴趣找到一篇简短的文章,该文章展示了执行 SQL 开发人员需要的一些基本任务的食谱方法(即跳过 Hello World 程序和关于数据类型的讨论)。

【问题讨论】:

    标签: mysql sql-server mysql-workbench


    【解决方案1】:

    DECLARE 仅在stored programs 内有效。换句话说,与 T-SQL 不同,您不能构建查询然后将 CREATE PROCEDURE 包裹起来以将最终结果转换为存储过程,您必须从一开始就将其构建为存储过程.

    【讨论】:

    • +1 这可能就是答案。那么,如何创建一个在 sql 脚本中运行的变量呢?我对 MySQL 还不够好,无法在不先测试它们的情况下开始编写长行代码。
    • 只需对user variables 使用SET 语法。类似SET @cGroupID = 'ABC123'; INSERT dbo_connection.documents (group_id) VALUES (@cGroupID);
    • 还要注意用户变量可用的有限类型,并且这些类型是隐式分配的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多