我有创建程序的问题,有人可以告诉我,我是否朝着正确的方向前进?请告诉我出了什么问题。
感谢您的帮助。
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
答案 0 :(得分:0)
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`);
话虽如此,为什么不将所有用户放在一个表中并拥有一个包含Administratorzy
和Uzytkownicy
的第5个字段?当用户从U切换到A时会发生什么。您必须删除并插入记录而不是仅执行UPDATE
。当您拥有新类型的角色时会发生什么?一张新桌子?