簡體   English   中英

包含DECLARE和臨時變量的SQL查詢

[英]SQL query involving DECLARE and temporary variables

我對SQL還是很陌生,但是嘗試編寫一個非常復雜的查詢,但是在第一部分中失敗了。 我需要為表創建一個新行,該表會自動遞增ID,並立即提取ID以在查詢中進一步使用。 搜尋了幾個小時以嘗試理解這一點,但似乎無法使其正常工作。 這是開篇(似乎是失敗的):

DECLARE @point1ID;
INSERT INTO points SET
pointName = "$pointName1",
street = "$street1",
town = "$town1",
city = "$city1",
zip = "XXX",
country = "$country1",
pointDescription = "$pointDescription1";
SELECT @point1ID = scope_identity();

我希望將剛插入的行的ID放入變量@ point1ID,以便以后可以在同一TRANSACTION / COMMIT塊中使用它。 我在這里做錯了什么?

謝謝!

假設您正在PHP中使用查詢,請執行INSERT,然后使用

$insert_id = mysql_insert_id();

獲取自動遞增的ID。

在MySQL控制台中,您可以使用以下命令訪問最后插入的AUTO_INCREMENT ID:

SELECT LAST_INSERT_ID();

如果要將這些信息存儲在變量中以備將來使用:

SET @lastid = LAST_INSERT_ID();

正如我已經說過的那樣,這僅適用於具有AUTO_INCREMENT列的表。 此外,此值僅在此連接上在服務器端維護。 如果將AUTO_INCREMENT列設置為特定的非特殊值,則不會更新此值。

暫無
暫無

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

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