我正在写和更新我的数据库,我想导入但我不知道我的代码有什么问题。 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);
我可以不创建程序吗?
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);
根据我们上面的讨论,如果“settings”表具有company_code =“first_company”的记录,那么你想插入记录然后可以通过这种方式实现
INSERT INTO colourmst (CODE, Column1)
SELECT LOWER(`value`) , 'XYZ'
FROM `settings` WHERE `setting_name` = 'COMPANY_CODE'