欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql變量語句執行不了的原因

黃文隆2年前10瀏覽0評論

MySQL是世界上最流行的數據庫之一。在日常的開發中經常會出現MySQL變量語句執行不了的情況。那么這是為什么呢?

SET @var := 1;  #設置變量var的值為1
SELECT @var;  #輸出變量var的值

上面的例子是正確并且常見的,下面我們來看看一些可能導致變量語句無法執行的原因。

可能原因一:沒有啟用MySQL的變量功能

SELECT @@SESSION.sql_mode;  #查詢當前會話的sql_mode

如果查詢結果中不包含NO_AUTO_CREATE_USER,那么說明變量功能沒有被啟用。此時需要在MySQL的配置文件中加入以下內容啟用變量功能。

[mysqld]
...
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY
...

可能原因二:使用了已被保留的變量名

SET @var := 1;  #設置變量var的值為1
SELECT @var;  #輸出變量var的值
SET @var := 2;  #設置變量var的值為2
SELECT @var;  #輸出變量var的值

上面的例子可以順利執行,但以下例子就會出現問題。

SET @var := 1;
SELECT @var;
SET @var := 2;
SELECT @var;
SELECT @VAR;  #錯誤代碼

錯誤代碼的原因是變量名被寫為@VAR,而變量名是區分大小寫的,所以這個變量名已經不是我們最開始定義的@var了。

可能原因三:變量名包含特殊字符

SET @var! := 1;  #錯誤的語句
SELECT @var!;

MySQL中變量名只能包含字母、數字和下劃線,不能包含其它字符。

以上就是一些導致MySQL變量語句無法執行的可能原因和解決方法。