簡體   English   中英

MySql存儲過程語法錯誤?

[英]MySql stored procedure syntax error?

我正在使用MySql並在存儲過程中編寫以下代碼:

  SET @label_id_configuration = 0;
  IF NOT (SELECT count(1) FROM `system_labels` WHERE  `name` = 'configuration') THEN
    SELECT @label_id_configuration := Max(`label_id`) + 1 FROM   `system_labels`;
    INSERT INTO `system_labels` (`label_id`, `name`) VALUES (@label_id_configuration, 'Configuration');
  END IF;

它在我的本地系統上運行良好。 但是在構建服務器上,它失敗。 存儲過程的其余部分運行良好,這意味着我們沒有權限,數據庫,表存在問題。

誰能給我提示以解決服務器上收到的錯誤消息?

Error on or near line 151: error in SQL script data_update.sql: @label_id_configuration:=`label_id` 6   

我不知道為什么會出錯,但是我可以看到如何完全消除該變量的使用(給出顯示的代碼):

IF NOT EXISTS(SELECT * FROM `system_labels` WHERE `name` = 'configuration') THEN
    INSERT INTO `system_labels` (`label_id`, `name`)
    SELECT Max(`label_id`) + 1, 'Configuration' FROM `system_labels`
END IF;

感謝你的幫助。

經過大量調查,沒有任何運氣。 我決定使用“插入忽略和替換”而不是上面的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM