如何獲取最後添加元素的ID?從我在網絡上的搜索中,我發現你可以使用@@ IDENTITY和IDENTITY_SCOPE(),但只有在添加它們時纔可以。我嘗試以下,但它不工作如何在非自動增量表中找到最後添加的ID?
CREATE TABLE Products
(PT_ID int PRIMARY KEY, Name nvarchar(20))
CREATE TABLE Storage(ST_ID int Primary key,Info nvarchar(20))
CREATE TABLE ProductStorageMM
(ST_ID int CONSTRAINT S_FK FOREIGN KEY REFERENCES Storage(ST_ID),
PT_ID int CONSTRAINT P_FK FOREIGN KEY REFERENCES Products(PT_ID),
Status int not null,
PRIMARY KEY (ST_ID ,PT_ID)
)
上面的表格僅供sake.I正在嘗試的實驗中,將一個值自動設置指定產品的所有值在產品表時存儲爲零。
CREATE PROCEDURE AddingProduct
(@PID int ,@NAME nvarchar(20))
AS BEGIN
INSERT INTO Products(PT_ID,Name)
VALUES(@PID,@NAME)
INSERT INTO PSKT (PT_ID,ST_ID,Status)
SELECT PTT.PT_ID ,STT.ST_ID,0
FROM (SELECT * FROM Storage) AS STT,
(SELECT * FROM Products WHERE PT_ID=SCOPE_IDENTITY()) AS PTT;
END
該程序不起作用。我做錯了什麼?
'>實施例@@ IDENTITY'用於Microsoft SQL Server。你的問題被標記爲MySQL。你實際使用了哪一個? –
在MySQL中,您應該使用MAX()來查找最後添加的ID –
@MattGibson啊,對不起,我沒有注意到這一點。我正在使用sql server – King23