2015-06-23 34 views
0

這就是我在我的order table中,我怎樣才能通過user_Name and OrderDate來增加order_ID增量?它會起作用嗎?通過日期和用戶名增加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(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 
+2

您使用的數據庫是?我看到SQL Server,MySQL和Oracle的功能。請適當標記問題。另外,樣本數據和期望的結果可以幫助他人理解你的問題。幾乎所有的數據庫中'Order'都不是可接受的表名。 –

+0

MySQL的工作臺,我把福德在我的表 – penguinnnnn

回答

0

我從來沒有使用自己的觸發器(很難調試)......但我怕這就是你需要完成這個自定義工作...看看MSDN的(插入/更新觸發器)...它肯定會幫助你...

0

這太長了評論。

包含訂單的表應具有OrderId列,該列是自動遞增的主鍵。你的代碼是正確的。

但是,您的表格是而不是的訂單表。它是一個訂單產品表。所以,我會寫這樣的數據模型:

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) 
); 

注:

  • 所有的表整數主鍵。這對於外鍵引用是最好的。
  • 沒有重複的數據,比如user_name。事物存儲在一個地方。
  • 這也使用我的首選命名約定。
+0

謝謝!它有助於!! – penguinnnnn