Mysql 按日期和用户名递增的Id
这是我的订单表中的内容,如何使用用户名和订单日期增加订单ID?行吗Mysql 按日期和用户名递增的Id,mysql,sql,database,Mysql,Sql,Database,这是我的订单表中的内容,如何使用用户名和订单日期增加订单ID?行吗 CREATE TABLE Order ( order_ID int NOT NULL AUTO_INCREMENT, user_Name CHAR(15), product_ID CHAR(6) NOT NULL, order_Quantity int, OrderDate datetime NOT NULL DEFAULT GETDATE(), PRIMARY KEY(ord
CREATE TABLE Order
(
order_ID int NOT NULL AUTO_INCREMENT,
user_Name CHAR(15),
product_ID CHAR(6) NOT NULL,
order_Quantity int,
OrderDate datetime NOT NULL DEFAULT GETDATE(),
PRIMARY KEY(order_ID),
FOREIGN KEY(user_Name) REFERENCES FUser(user_Name),
FOREIGN KEY(product_ID) REFERENCES Product(product_ID)
);
样本数据:
order_ID user_Name product_ID order_Quantity OrderDate
1 blabla a 2 11-11-08 13:23
1 blabla b 1 11-11-08 13:23
1 blabla c 1 11-11-08 13:23
2 c a 2 11-11-08 13:23
2 c b 2 11-11-08 13:23
Order是SQL的关键字保留字 其他关键字
我自己从来不使用触发器,很难调试…但恐怕这正是您完成此自定义任务所需要的…请查看MSDN中的插入/更新触发器…它肯定会帮助您…这篇评论太长了 包含订单的表应该有一个OrderId列,该列是自动递增的主键。您的代码是正确的 但是,您的表不是orders表。这是一个订单产品表。因此,我将这样编写数据模型:
CREATE TABLE Users (
UserId NOT NULL AUTO_INCREMENT PRIMARY KEY
UserName VARCHAR(15)
);
CREATE TABLE Orders (
OrderId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserId CHAR(15),
OrderDate datetime NOT NULL DEFAULT GETDATE(),
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
CREATE TABLE OrderProducts (
OrderProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ProductId int NOT NULL,
OrderQuantity int,
OrderDate datetime NOT NULL DEFAULT GETDATE(),
FOREIGN KEY(ProductId) REFERENCES Product(ProductId)
);
注:
所有表都有一个整数主键。这最适合外键引用。
没有重复的数据,例如用户名。东西都存放在一个地方。
这也使用了我喜欢的命名约定。
你在使用什么数据库?我看到了SQLServer、MySQL和Oracle的特性。请适当地标记问题。此外,样本数据和期望的结果将有助于其他人理解您的问题。Order在几乎所有数据库中都不是一个可接受的表名。MySQL工作台,我把Forder放在我的表中