Scondofee smallmoney default(select Fees from Resident)报错,怎么使用触发器将Scondofee的默认值设置为Resident的Fees
时间: 2024-02-06 14:12:45 浏览: 25
你可以使用如下的触发器来实现将Scondofee的默认值设置为Resident的Fees:
```sql
CREATE TRIGGER trg_set_scondofee_default
BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
DECLARE v_fees INT;
SELECT Fees INTO v_fees FROM Resident;
IF NEW.Scondofee IS NULL THEN
SET NEW.Scondofee = v_fees;
END IF;
END;
```
在触发器中,我们首先声明一个变量v_fees,用于存储Resident表中的Fees值。然后,我们在触发器中查询Resident表中的Fees值,并将其赋值给变量v_fees。接着,我们检查插入的新行中Scondofee是否为NULL,如果是,则将Scondofee设置为变量v_fees的值。最后,我们使用BEFORE INSERT触发器来确保在插入新行之前设置默认值。你需要将上述代码中的your_table替换为你的实际表名。
相关问题
quotation表的结构为:型号:char(20),经销商:varchar(40),报价:smallmoney,报价时间:datetime,库存量:int。其中,(型号,经销商)为主键,型号、经销商为外键,报价非空,库存量的CHECK 约束为大于等于0。
根据你提供的信息,可以创建如下的 quotation 表结构:
```
CREATE TABLE quotation (
model CHAR(20) NOT NULL,
dealer VARCHAR(40) NOT NULL,
price SMALLMONEY NOT NULL,
quote_time DATETIME NOT NULL,
stock INT NOT NULL CHECK (stock >= 0),
PRIMARY KEY (model, dealer),
FOREIGN KEY (model) REFERENCES model(model),
FOREIGN KEY (dealer) REFERENCES dealer(name)
);
```
其中,model 和 dealer 分别为外键,参考了其他两个表(假设分别为 model 和 dealer 表)中的主键。需要注意的是,这里使用了 SMALLMONEY 类型来存储报价,同时为库存量添加了 CHECK 约束,以确保库存量不会小于 0。
我提出了以下几个属性:CartID、UserID、GoodsID、OrderTime、OrderCount、GoodsPrice、UserCheck、OrderPrice,每个属性对应的类型为: BigInt、Varchar(20)、Varchar(20)、Datetime、Int、Smallmoney、Int、Money。将以上的属性分别随机生成10个相对应的数据,并将随机生成的数据用sql语句插入ShoppingCart表中。
好的,以下是可以用来插入10条数据的 SQL 语句:
```
INSERT INTO ShoppingCart (CartID, UserID, GoodsID, OrderTime, OrderCount, GoodsPrice, UserCheck, OrderPrice)
VALUES
(100001, 'user001', 'goods001', '2021-07-01 12:34:56', 2, 20.99, 1, 41.98),
(100002, 'user002', 'goods002', '2021-07-02 11:22:33', 1, 10.99, 1, 10.99),
(100003, 'user003', 'goods003', '2021-07-03 10:11:12', 3, 5.99, 0, 17.97),
(100004, 'user004', 'goods004', '2021-07-04 09:08:07', 1, 50.00, 1, 50.00),
(100005, 'user005', 'goods005', '2021-07-05 08:07:06', 2, 12.50, 1, 25.00),
(100006, 'user006', 'goods006', '2021-07-06 07:06:05', 1, 30.00, 1, 30.00),
(100007, 'user007', 'goods007', '2021-07-07 06:05:04', 2, 8.88, 0, 17.76),
(100008, 'user008', 'goods008', '2021-07-08 05:04:03', 1, 15.99, 1, 15.99),
(100009, 'user009', 'goods009', '2021-07-09 04:03:02', 3, 6.66, 1, 19.98),
(100010, 'user010', 'goods010', '2021-07-10 03:02:01', 1, 99.99, 1, 99.99);
```
这条 SQL 语句会在 ShoppingCart 表中插入10条数据,每条数据对应了上述的10个属性,并且数据是随机生成的。请确认你的 ShoppingCarrt 表中的这10条数据是否符合你的要求。