gpt4 book ai didi

mysql - 完全是一个 mySQL 触发器幸福问题

转载 作者:可可西里 更新时间:2023-11-01 08:10:25 25 4
gpt4 key购买 nike

所以我创建了我的 lil 数据库,然后使用它。我添加了两个表,现在我想做的就是:当一个用户被插入到 USERS 表中时,还将一些默认信息插入到与新插入的用户相对应的 USER_ACCOUNT 表中。显然我做错了什么,但我不知道是什么......提前致谢。 =)

CREATE DATABASE REST_PROJECT;
USE REST_PROJECT;

CREATE TABLE USERS (
UserID INT Primary Key AUTO_INCREMENT NOT NULL,
UserEmail VARCHAR(30),
UserPassword VARCHAR(30)
);

CREATE TABLE USER_ACCOUNT (
UserAccountID INT Primary Key AUTO_INCREMENT NOT NULL,
OwnerUserID INT,
UserAccountName VARCHAR(30),
UserAccountType VARCHAR(10) NOT NULL,
UserAccountBalence INT,
FOREIGN KEY (OwnerUserID) REFERENCES USERS(UserID)
);

DELIMITER //
CREATE TRIGGER makeDefaultUserAccount
AFTER INSERT ON USERS
For each row
BEGIN
INSERT INTO USER_ACCOUNT
(UserAccountName, UserAccountType, UserAccountBalence)
values ('Default Account','default', 100);
END; //

最佳答案

CREATE DATABASE REST_PROJECT;
USE REST_PROJECT;

CREATE TABLE `USERS` (
UserID BIGINT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
UserEmail VARCHAR(50),
UserPassword VARCHAR(30)
);

CREATE TABLE `USER_ACCOUNT` (
UserAccountID BIGINT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
UserID BIGINT(20) UNSIGNED NOT NULL,
UserAccountName VARCHAR(30),
UserAccountType VARCHAR(10) NOT NULL,
UserAccountBalance DECIMAL(19,6),
CONSTRAINT `fk_USER_ACCOUNT_UserID` FOREIGN KEY (`UserID`)
REFERENCES `USERS`.`UserID` (`UserID`)
ON DELETE CASCADE
ON UPDATE CASCADE
);

DELIMITER //
CREATE TRIGGER `makeDefaultUserAccount`
AFTER INSERT ON `USERS`
FOR EACH ROW BEGIN
INSERT INTO USER_ACCOUNT (OwnerUserID, UserAccountName, UserAccountType, UserAccountBalance)
VALUES (NEW.UserID, 'Default Account','default', 100);
END//
DELIMITER ;

注意事项

  • 注意 主键数据类型 的变化,是的,如果您希望系统中有large 规模的数据,那将是适合您的初始设置
  • USER_ACCOUNT 表的外键部分也发生变化,应符合引用表列的相关键,并且应也 级联 进行任何更改
  • UserAccountBalence 更改为 UserAccountBalance,并且还更改了 datatype 以容纳将保存在中的 currency value上述专栏
  • 关于 USERS 表中的 UserEmail 列,从 30 更改为 50,您需要给应用一些喘息的空间,以防验证突然失败
  • 更新了触发区域以保存您将在外键中使用的

关于mysql - 完全是一个 mySQL 触发器幸福问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36168822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com