Есть ли способ, чтобы использовать пользовательские переменные, как длины столбцов в инструкции create таблице?
Тест.sql:
SET @my_var = 50;
CREATE TABLE test_table (
id SMALLINT NOT NULL,
my_text VARCHAR(@my_var),
PRIMARY KEY (id)
);
Взаимодействие с командной строкой:
mysql> source d:/test.sql;
Query OK, 0 rows affected (0.00 sec)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'@my_var),
PRIMARY KEY (id)
)' at line 3
Есть ли способ сделать это?
1 ответ:
Я не могу придумать другого способа, кроме компиляции целого
CREATE TABLE
в виде строки и ее выполнения:SET @my_var = 50; PREPARE sql FROM ' CREATE TABLE test_table ( id SMALLINT NOT NULL, my_text VARCHAR(' + @my_var + '), PRIMARY KEY (id) ); ' EXECUTE sql; DEALLOCATE PREPARE sql;
Это довольно некрасиво, но должно сработать.