最初のmysqlストアドプロシージャを作成しようとしていますが、構文エラーが原因でスクリプトが機能しません。この質問は、mysqlデータベースに精通している人にとっては簡単に思えるかもしれません。MySQL。ストアドプロシージャの作成に失敗しました
表作成スクリプト:
CREATE TABLE `companies` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` TINYTEXT NOT NULL,
`full_name` TINYTEXT NULL,
`region_id` INT(11) NULL DEFAULT NULL,
`address` TINYTEXT NULL,
`legal_address` TINYTEXT NULL,
`main_phone` TINYTEXT NULL,
`inn` TINYTEXT NULL,
`bank` TINYTEXT NULL,
`bic` TINYTEXT NULL,
`bank_account` TINYTEXT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `U_COMPANY_MAIN_PHONE` (`main_phone`(100)),
INDEX `FK_COMPANY_REGION_ID` (`region_id`),
CONSTRAINT `FK_COMPANY_REGION_ID` FOREIGN KEY (`region_id`) REFERENCES `regions` (`id`)
)
ストアドプロシージャのコードは次のとおりです。
create procedure add_company(
in p_name TINYTEXT,
in p_full_name TINYTEXT,
in p_region_id INT,
in p_address TINYTEXT,
in p_legal_address TINYTEXT,
in p_main_phone TINYTEXT,
in p_inn TINYTEXT,
in p_bank TINYTEXT,
in p_bic TINYTEXT,
in p_bank_account TINYTEXT
)
begin
insert into companies(
name,
full_name,
region_id,
address,
legal_address,
main_phone,
inn,
bank,
bic,
bank_account
)
values (
p_name,
p_full_name,
p_region_id,
p_address,
p_legal_address,
p_main_phone,
p_inn,
p_bank,
p_bic,
p_bank_account
);
end;
間違いがどこにあるか誰もが知っていますか?
間違いはストアドプロシージャを使用しています。一般的に、彼らは悪です。コードの残りの部分にコードを残しておけば、それができないことを100%保証していない限り残すことができます。 – cdeszaq