我正在编写并更新到我想要导入的数据库,但我不知道我的代码有什么问题。 MySQL Workbench和phpMyAdmin返回一个语法错误。这只是一个案例陈述的例子。谁能帮我?
SET @company_code = 0;
SELECT @company_code := LOWER(`value`) FROM `settings` WHERE `setting_name` = 'COMPANY_CODE';
CREATE PROCEDURE p(in code varchar(200))
BEGIN
CASE code
WHEN 'first_company' THEN SELECT code;
ELSE SELECT '1';
END CASE
END;
CALL p(@company_code);
我可以在不创建程序的情况下这样做吗?
答案 0 :(得分:1)
END
;
以外的分隔符来创建过程请参阅Defining Stored Programs了解相关信息。
DELIMITER foo
CREATE PROCEDURE p(IN code VARCHAR(200))
BEGIN
CASE code
WHEN 'first_company' THEN INSERT INTO dest_first SELECT code, * FROM srctable;
ELSE INSERT INTO dest_other SELECT '1', * FROM srctable;
END CASE;
END;
foo
DELIMITER ;
SET @company_code = 0;
SELECT @company_code := LOWER(value) FROM settings WHERE setting_name = 'COMPANY_CODE';
CALL p(@company_code);
答案 1 :(得分:0)
根据我们上面的讨论,如果"设置" table具有company_code =" first_company"那么你想插入记录然后它可以通过这种方式实现
INSERT INTO colourmst (CODE, Column1)
SELECT LOWER(`value`) , 'XYZ'
FROM `settings` WHERE `setting_name` = 'COMPANY_CODE'