我有2個表,訂單和車,我想在車表複製到訂單表我能做到這一點使用此語句將表複製到B表有額外的唯一列
INSERT INTO Orders
SELECT *, CURRENT_TIMESTAMP()
FROM cart
的CURRENT_TIMESTAMP()將取代額外的唯一列,但我不希望使用時間戳作爲獨一無二的,我想有別的東西,因爲很害怕2用戶將在同一時間順序,那麼他們將有相同的訂單號
我有2個表,訂單和車,我想在車表複製到訂單表我能做到這一點使用此語句將表複製到B表有額外的唯一列
INSERT INTO Orders
SELECT *, CURRENT_TIMESTAMP()
FROM cart
的CURRENT_TIMESTAMP()將取代額外的唯一列,但我不希望使用時間戳作爲獨一無二的,我想有別的東西,因爲很害怕2用戶將在同一時間順序,那麼他們將有相同的訂單號
您可以使用當前日期和時間紀元格式記錄的唯一性。
例如: -
假設1501216777000是以毫秒爲單位: GMT:星期五7月28日,2017年4:39:37.216 AM 您的時區:星期五,2017年10年7月28日:09:37.216 AM GMT + 05:30
所以1501216777000這個字符串可以是你的唯一。現在2個用戶不能在同一時間下訂單,因爲這個曆元格式以毫秒爲單位。
好主意,但如何在代碼中使用它我證明了你 –
INSERT INTO訂單 SELECT *,(UNIX_TIMESTAMP(NOW())* 1000) FROM cart – Amit
謝謝你這是工作,但有問題,這將只工作一次,第二次它將無法正常工作,我不知道爲什麼 –
使用AUTO INCREMENT將主鍵ID添加到您的購物車表中。所以你會有一個獨特的價值自動增加。
ALTER TABLE cart ADD id INT PRIMARY KEY AUTO_INCREMENT;
這會給每個產品不同的訂單ID,所有的行必須有相同的訂單ID,我發佈的代碼正在工作,並且它做我想要的,但是我想替換函數CURRENT_TIMESTAMP( )與不同的功能,這將給我獨特的價值 –
INSERT INTO Orders (COL1,COL2,COL3,COL_TIME)
SELECT COL1,COL2,COL3, CURRENT_TIMESTAMP()
FROM cart
始終把列名而不是*當您嘗試噸表中插入值。
我發佈的代碼正在工作,並且它做我想要的,但我想用不同的函數替換函數CURRENT_TIMESTAMP(),這將給我獨特的價值。並感謝您的建議,我會做到 –
你可以簡單地連接一些獨特的東西與時間戳。例如current_timestamp() + '-' + User_ID
提供一個數字,每個用戶都是唯一的。
這是一個好主意,也謝謝 –
添加設置爲AUTO_INCREMENT的Cart_ID列。 – JeffUK
INSERT INTO訂單(字段) SELECT字段,'CURRENT_TIMESTAMP()' FROM cart –
這將給每個行不同的購物車ID,但我希望他們都有相同的ID像時間戳,所以當用戶再次訂購時,他會這個訂單有不同的訂單ID –