MySQL 将用户插入适当 table 的过程
MySQL PROCEDURE which will insert user into appropriate table
我在创建程序时遇到问题,有人可以告诉我我的方向是否正确吗?请告诉我哪里出了问题。
感谢您的帮助。
CREATE TABLE IF NOT EXISTS Uzytkownicy(
idUzytkownika INT PRIMARY KEY AUTO_INCREMENT,
login VARCHAR(50) NOT NULL,
haslo VARCHAR(64) NOT NULL,
rola varchar(5)
);
CREATE TABLE IF NOT EXISTS Administratorzy(
idUzytkownika INT PRIMARY KEY AUTO_INCREMENT,
login VARCHAR(50) NOT NULL,
haslo VARCHAR(64) NOT NULL,
rola varchar(5)
);
CREATE PROCEDURE `ins`
(
in `P_idUzytkownik` INT,
in `P_login` varchar(50),
in `P_haslo` varchar(64),
in `P_rola` varchar(5)
)
BEGIN
IF `P_rola` ="Admin"
THEN
INSERT INTO `Administratorzy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`)
ELSE
INSERT INTO `Uzytkownicy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`)
END
https://dev.mysql.com/doc/refman/5.7/en/if.html
您缺少一些分号。尝试:
IF `P_rola` ="Admin"
THEN
INSERT INTO `Administratorzy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`);
ELSE
INSERT INTO `Uzytkownicy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`);
话虽这么说,为什么不将所有用户都放在一个 table 中,并让第 5 个字段包含 Administratorzy
和 Uzytkownicy
?当用户从 U 切换到 A 时会发生什么。您必须删除和插入记录,而不仅仅是执行 UPDATE
。当您拥有一种新型角色时会发生什么?一个新的 table?
我在创建程序时遇到问题,有人可以告诉我我的方向是否正确吗?请告诉我哪里出了问题。
感谢您的帮助。
CREATE TABLE IF NOT EXISTS Uzytkownicy(
idUzytkownika INT PRIMARY KEY AUTO_INCREMENT,
login VARCHAR(50) NOT NULL,
haslo VARCHAR(64) NOT NULL,
rola varchar(5)
);
CREATE TABLE IF NOT EXISTS Administratorzy(
idUzytkownika INT PRIMARY KEY AUTO_INCREMENT,
login VARCHAR(50) NOT NULL,
haslo VARCHAR(64) NOT NULL,
rola varchar(5)
);
CREATE PROCEDURE `ins`
(
in `P_idUzytkownik` INT,
in `P_login` varchar(50),
in `P_haslo` varchar(64),
in `P_rola` varchar(5)
)
BEGIN
IF `P_rola` ="Admin"
THEN
INSERT INTO `Administratorzy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`)
ELSE
INSERT INTO `Uzytkownicy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`)
END
https://dev.mysql.com/doc/refman/5.7/en/if.html
您缺少一些分号。尝试:
IF `P_rola` ="Admin"
THEN
INSERT INTO `Administratorzy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`);
ELSE
INSERT INTO `Uzytkownicy`
VALUES(`P_idUzytkownik`,`P_login`,`P_haslo`,`P_rola`);
话虽这么说,为什么不将所有用户都放在一个 table 中,并让第 5 个字段包含 Administratorzy
和 Uzytkownicy
?当用户从 U 切换到 A 时会发生什么。您必须删除和插入记录,而不仅仅是执行 UPDATE
。当您拥有一种新型角色时会发生什么?一个新的 table?