我有一个脚本,我运行创build我的数据库。 我运行这个
source <file>
当它完成它显示
mysql>
我然后键入
show databases;
并且到下一行并且放
->
仿佛我错过了; ,但我没有。
它也是一样的
show tables;
我不知道我错过了什么。
脚本是
DROP DATABASE IF EXISTS app; CREATE DATABASE app; USE app; CREATE TABLE `user` ( id INT PRIMARY KEY AUTO_INCREMENT, forename VARCHAR(20) NOT NULL, surname VARCHAR(20) NOT NULL, `status` VARCHAR(15), deleted BOOLEAN ); CREATE TABLE login ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, email VARCHAR(50) NOT NULL UNIQUE, `password` VARCHAR(65), FOREIGN KEY(user_id) REFERENCES `user`(id) ); DELIMITER // CREATE PROCEDURE sp_Create_User ( in_forename VARCHAR(20), in_surname VARCHAR(20), in_status VARCHAR(15), in_deleted BOOLEAN, in_email VARCHAR(50), in_password VARCHAR(65) ) BEGIN DECLARE found_user_id INT; INSERT INTO `user` ( forename, surname, `status`, deleted ) VALUES ( in_forename, in_surname, in_status, in_deleted ); SET found_user_id = ( SELECT id FROM app.`user` WHERE forename = in_forename AND surname = in_surname AND id NOT IN ( SELECT user_id FROM app.login ) ); INSERT INTO app.login ( user_id, email, `password` ) VALUES ( found_user_id, in_email, in_password ); END // CREATE PROCEDURE sp_Get_All_Users() BEGIN SELECT u.forename, u.surname, u.`status`, u.deleted, l.user_id, l.email, l.password FROM `user` u INNER JOIN login l ON u.id = l.user_id; END // CREATE PROCEDURE sp_Update_User_Status(in_id INT, in_status VARCHAR(15)) BEGIN UPDATE app.`user` SET `status` = in_status WHERE id = in_id; END // CREATE PROCEDURE sp_Delete_User(in_id INT, in_deleted BOOLEAN) BEGIN UPDATE app.`user` SET deleted = in_deleted WHERE id = in_id; END // CREATE PROCEDURE sp_Get_Login(in_email VARCHAR(50), in_password VARCHAR(65)) BEGIN SELECT l.user_id, l.email, l.`password`, u.deleted, u.status FROM login l INNER JOIN `user` u ON l.user_id = u.id WHERE l.email = in_email AND l.`password` = in_password; END // CREATE PROCEDURE sp_Update_Password(in_user_id INT, in_old_password VARCHAR(65), in_new_password VARCHAR(65)) BEGIN UPDATE app.login SET `password` = in_new_password WHERE user_id = in_user_id AND `password` = in_old_password; END //
这是因为你有
DELIMITER //
在你的查询。
将其添加到脚本中,或者在脚本完成运行后手动运行:
DELIMITER ;