我在這裏有一個對應於客戶訂單的表格。我使用AUTO_INCREMENT
來確定訂單的ID。我有這樣的SQL代碼爲orders
表:我怎樣才能得到一個自動遞增的值
CREATE TABLE IF NOT EXISTS `orders` (
`order_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) NOT NULL,
`customer_name` varchar(500) NOT NULL,
`order_total_price` decimal(20, 2) NOT NULL,
`order_date` varchar(100) NOT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB
我需要的是一個外鍵order_id
插入每個訂單的產品的另一個表中指定的產品是屬於什麼樣的順序。爲purchased_products
表的SQL代碼:
CREATE TABLE IF NOT EXISTS `purchased_products` (
`order_id` int (11) NOT NULL,
FOREIGN KEY (`order_id`) REFERENCES orders(`order_id`),
`product_name` varchar(500) NOT NULL,
`product_price` decimal(20, 2) NOT NULL,
`product_quantity` int(11) NOT NULL,
PRIMARY KEY (`order_id`)
)
當用戶買東西,我用這個在orders
表中插入數據:
INSERT INTO orders (customer_id, customer_name, order_total_price, order_date)
VALUES ('{$customer_id}', '{$customer['customer_name']}', '{$order_total_price}', '{$order_date}')";
這裏是我的問題。我需要在purchased_products
表生成的訂單ID插入產品:
INSERT INTO purchased_products (order_id, product_name, product_price, product_quantity)
VALUES ('*/The ID of the order need to goes here*/', '{$product['product_name']}', '{$product['product_price']}', '{$product['quantity']}')";
這讓我頭疼。我真的不知道該怎麼做。這應該以不同的方式完成?如何將訂單ID與屬於它的產品關聯?
有幾種方法可以確定「剛分配的」自動ids,但幾乎每個RDBMS都有自己的方法。因此,標準問題:您使用的是什麼RDBMS? –
只是一個建議..使用'MAX()'方法..這將找出最後插入的'id' ..但請注意,只有在訂單表上沒有其他'insert'完成時,這將有所幫助。這只是一種方式 –
RDBMS知道最後一次插入的自動遞增id到特定的表中。你可以得到它。就我所知,在mysql中它被稱爲LAST_INSERT_ID。但是,@Philip Kelley提到它取決於你正在使用的RDBMS。 – SayusiAndo