簡體   English   中英

使用額外的唯一列將A表復制到B表

[英]copy A table to B table with extra unique column

在我的數據庫中,我有2表,訂單和購物車,我想將購物車表復制到訂單表,我可以使用此語句

 INSERT INTO Orders SELECT *, CURRENT_TIMESTAMP() FROM cart 

CURRENT_TIMESTAMP()將替換額外的唯一列,但我不想將時間戳記用作唯一列,我想擁有其他內容,因為害怕2個用戶將在同一時間訂購,那么他們將具有相同的訂購ID

使用AUTO INCREMENT向您的購物車表添加主鍵ID。 因此,您將擁有一個獨特的價值,該價值會自動增加。

ALTER TABLE cart ADD id INT PRIMARY KEY AUTO_INCREMENT;

您可以使用當前日期和時間紀元格式來確保記錄的唯一性。

例如 :-

假設1501216777000以毫秒為單位:GMT:2017年7月28日星期五4:39:37.216 AM您所在的時區:2017年7月28日星期五10:09:37.216 AM GMT + 05:30

因此1501216777000該字符串可以是您唯一的。 現在有2位用戶無法同時下訂單,因為此紀元格式以毫秒為單位。

您可以簡單地將時間戳與唯一的內容串聯起來。 例如current_timestamp() + '-' + User_ID以提供每個用戶唯一的數字。

INSERT INTO Orders (COL1,COL2,COL3,COL_TIME)
SELECT COL1,COL2,COL3, CURRENT_TIMESTAMP()
FROM   cart

嘗試在表中插入值時,請始終輸入列名而不是*。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM