SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.05.2010 06:47:59

mysqluser
Завсегдатай
Зарегистрирован: 06.04.2010
Сообщений: 31

Procedure не работает

Приветствую

Вот написал код в соответствии с примером туториала, но он не работает при вызове
call userdb.add('login','path','name','sdesc','catheg')

точнее работает только до создания таблицы, а уже вставку не делает sad Выбрасывает

#42S22 Unknown 'column upload_file_save_path' in the 'field list'

вот код

Код:

CREATE PROCEDURE userdb.add(
IN loginp varchar(20),
IN upload_file_save_pathp varchar(127),
IN upload_file_namep varchar(50),
IN upload_file_descp varchar(127),
IN upload_file_cathegoryp varchar(20)
)
BEGIN


set @sql=concat('CREATE TABLE IF NOT EXISTS userdb.',loginp,'( 
upload_file_save_path varchar(127),
upload_file_name varchar(50) , 
upload_file_desc varchar(127) , 
upload_file_cathegory varchar(20) , 
upload_date date , 
id int NOT NULL,  PRIMARY KEY (id)) TYPE = MyISAM ROW_FORMAT =DEFAULT');

PREPARE s1 from @sql;
EXECUTE s1;
DEALLOCATE PREPARE s1;

set @sql2=concat(
'INSERT INTO userdb.',loginp,'(',upload_file_save_path,',',upload_file_name,',',upload_file_desc,',',upload_file_cathegory,',',upload_date,',',id,') 
VALUES("',upload_file_save_pathp,'","',upload_file_namep,'","',upload_file_descp,'","',upload_file_cathegoryp,'",',CURRENT_DATE,',1);');

PREPARE s2 from @sql2;
EXECUTE s2;
DEALLOCATE PREPARE s2;


END

MySQL 5.1.39

Отредактированно mysqluser (03.05.2010 06:50:42)

Неактивен

 

#2 03.05.2010 10:52:19

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Procedure не работает

Скорее всего проблема в том что в INSERT INTO tablename (...fields...) вы передаете значения переменных.

Попробуйте так:

set @sql2=concat(
'INSERT INTO userdb.',loginp,'(upload_file_save_path, upload_file_name, upload_file_desc, upload_file_cathegory, upload_date, id)
VALUES("'
,upload_file_save_pathp,'","',upload_file_namep,'","',upload_file_descp,'","',upload_file_cathegoryp,'",',CURRENT_DATE,',1);');

Неактивен

 

#3 03.05.2010 22:52:37

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Procedure не работает

Проблема в опечатке при создании таблицы wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson