在一個新的MySQL會議的下列作品CREATE TABLE:語法錯誤嘗試在使用會話變量
CREATE DATABASE rand27818;
USE rand27818;
CREATE TABLE sessions (id INT NOT NULL AUTO_INCREMENT, session VARCHAR(128), PRIMARY KEY(id));
DROP DATABASE rand27818;
然而,並非this--
SET @sesslen = 128;
CREATE DATABASE rand27818;
USE rand27818;
CREATE TABLE sessions (id INT NOT NULL AUTO_INCREMENT, session VARCHAR(@sesslen), PRIMARY KEY(id));
DROP DATABASE rand27818;
--does;返回:
「ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的權利 語法使用近「@sesslen的 手冊),PRIMARY KEY(ID))」在
我試圖與周圍的變量額外的括號若干組合,去掉@符號,期運用數據庫等方面沒有喜悅後分配變線1" 。 (不是我認爲它會有所作爲。)在INSERT語句和SELECT變量中使用變量似乎沒有問題,我只是在嘗試創建時遇到問題。
我在想,這是我安裝的好奇心(MySQL與XAMPP捆綁在一起,以防萬一)或者由於我對MySQL的概念誤解而遺漏了某些東西。如果後者,有人可以解釋我錯過了什麼嗎?
感謝您的解決方案。它確實有效,但我給出的例子是來自一個更大的安裝轉儲的片段,我正在編寫涉及創建包含多個字段的表的六個此類變量。因此,準備好的陳述是過度的 - 這一切開始變得相當笨拙。真的沒有更方便的方法來做到這一點嗎? – user874055