Comment obtenir l'ID du dernier élément ajouté dans le? De ma recherche sur le web, j'ai trouvé que vous pouvez utiliser @@ IDENTITY et IDENTITY_SCOPE() mais seulement en les ajoutant/en étant dans le. J'ai essayé ce qui suit, mais il ne fonctionne pasComment trouver le dernier identifiant ajouté dans une table non auto incrémentée?
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)
)
Les tableaux ci-dessus ne sont que pour les expériences sake.I essaie de, lors de l'ajout d'une valeur dans la table de produit définit automatiquement toutes les valeurs du produit donné Les stockages à zéro.
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
La procédure ne fonctionne pas.Que je fais mal?
'@@ IDENTITY' est pour Microsoft SQL Server. Votre question est taguée MySQL. Lequel utilisez-vous actuellement? –
En MySQL vous devriez utiliser MAX() pour trouver le dernier ID ajouté –
@MattGibson Ah, désolé, je n'ai pas remarqué cela. J'utilise sql server – King23