Jon*_*ark 4 mysql sql doctrine procedure symfony
我正在使用Symfony2中的一个应用程序项目。通过注册,每个客户可以创建一个数据库。客户端登录时,架构由验证服务创建。该应用程序需要一些数据才能工作,到目前为止,我已使用ORM固定装置。由于多种原因,我现在需要从灯具负载转移到更接近数据库的位置。我创建了一个存储过程(mysql),它将替换所有数据加载。该过程有效,但是我需要在每个数据库中连同模式一起创建此过程。我为此使用doctrine raw sql,但是我无法通过create procedure语句的第一行传递问题。似乎与“分隔符$$”有关。
使用sql语句执行服务时,我得到:“ message”:“执行'delimiter $$ \ r \ n \ r \ nCREATE DEFINER = root@`localhost时发生异常”
这似乎是由于换行引起的,但我不确定。有谁知道解决这个问题的方法吗?
小智 5
问题来自这样一个事实,即只有在使用MySQL命令行工具时才能使用定界符命令,如http://dev.mysql.com/doc/refman/5.1/en/stored-programs-defining.html所述。要解决此问题,您需要删除要更改定界符的部分,而只需使用;作为分隔符。考虑以下:
分隔符$$
创建步骤dorepeat(p1 INT)
开始
Run Code Online (Sandbox Code Playgroud)SET @x = 0; REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;END $$
上面的方法不起作用,但是以下情况将起作用:
创建步骤dorepeat(p1 INT)
开始
Run Code Online (Sandbox Code Playgroud)SET @x = 0; REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;结束;
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |