库存表(编号,名称下(商品表,商品名称). 数量》 商品表(编号,商品名称,规格。单价> 出库 (编号,时间,商品名称,经手人,数量,,触发器〈修改军存表•数量为 原数量-新出库数量》 入库《编号,时间,商品名称,经手人,数量》,触发器 (判断 库存表里是香有该南品信息,如果设有则创建,如果有则修改库存为 原库存+新增库存) 创建一个视图 (商品表•名称,商品表,单价.库存表,数量,生成列 库存总价。
时间: 2024-03-22 09:42:18 浏览: 137
好的,根据您的要求,我可以为您提供以下MySQL数据库的建表语句和触发器:
建立商品表:
```
CREATE TABLE 商品表 (
编号 INT NOT NULL AUTO_INCREMENT,
商品名称 VARCHAR(50) NOT NULL,
规格 VARCHAR(50),
单价 DECIMAL(10,2),
PRIMARY KEY (编号)
);
```
建立库存表:
```
CREATE TABLE 库存表 (
编号 INT NOT NULL AUTO_INCREMENT,
商品名称 VARCHAR(50) NOT NULL,
数量 INT,
PRIMARY KEY (编号),
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称)
);
```
建立出库表:
```
CREATE TABLE 出库 (
编号 INT NOT NULL AUTO_INCREMENT,
时间 DATETIME NOT NULL,
商品名称 VARCHAR(50) NOT NULL,
经手人 VARCHAR(50),
数量 INT,
PRIMARY KEY (编号),
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称)
);
```
建立入库表:
```
CREATE TABLE 入库 (
编号 INT NOT NULL AUTO_INCREMENT,
时间 DATETIME NOT NULL,
商品名称 VARCHAR(50) NOT NULL,
经手人 VARCHAR(50),
数量 INT,
PRIMARY KEY (编号),
FOREIGN KEY (商品名称) REFERENCES 商品表(商品名称)
);
```
建立库存表触发器:
```
CREATE TRIGGER 更新库存 AFTER INSERT ON 入库
FOR EACH ROW
BEGIN
DECLARE count INT;
SELECT COUNT(*) INTO count FROM 库存表 WHERE 商品名称 = NEW.商品名称;
IF count = 0 THEN
INSERT INTO 库存表 (商品名称, 数量) VALUES (NEW.商品名称, NEW.数量);
ELSE
UPDATE 库存表 SET 数量 = 数量 + NEW.数量 WHERE 商品名称 = NEW.商品名称;
END IF;
END;
```
建立出库表触发器:
```
CREATE TRIGGER 更新库存 AFTER INSERT ON 出库
FOR EACH ROW
BEGIN
UPDATE 库存表 SET 数量 = 数量 - NEW.数量 WHERE 商品名称 = NEW.商品名称;
END;
```
创建视图:
```
CREATE VIEW 库存总价 AS
SELECT 商品表.商品名称, 商品表.单价, 库存表.数量, 商品表.单价 * 库存表.数量 AS 库存总价
FROM 商品表
JOIN 库存表 ON 商品表.商品名称 = 库存表.商品名称;
```
阅读全文