2015-02-10 76 views
0

我創建了以下存儲過程。但它給出了語法錯誤。我無法指出這個問題。從存儲過程中創建表時出錯

DELIMITER | 
CREATE PROCEDURE createtables() 
BEGIN 
CREATE DATABASE test; 
USE test; 
CREATE TABLE employee(eid int PRIMARY KEY, ename varchar(45)); 
CREATE TABLE account(accid int PRIMARY KEY, amount float); 
CREATE TABLE department(dip int PRIMARY KEY, depname varchar(45), eid int, FOREIGN KEY(dip) REFERENCES employee(eid)); 
END | 
DELIMITER ; 

回答

1

我認爲你不能在存儲過程中使用USE。因此,請嘗試:

DELIMITER | 
CREATE PROCEDURE createtables() 
BEGIN 
CREATE DATABASE test; 
CREATE TABLE test.employee(eid int PRIMARY KEY, ename varchar(45)); 
CREATE TABLE test.account(accid int PRIMARY KEY, amount float); 
CREATE TABLE test.department(dip int PRIMARY KEY, depname varchar(45), eid int, FOREIGN KEY(dip) REFERENCES test.employee(eid)); 
END | 
DELIMITER ; 
+1

需要說'REFERENCES test.employee(eid)'。編輯。 – 2015-02-10 12:49:08