Tenir compte des tableaux suivants pour un LMS:mySQL DB: effectuer des entrées simultanées?
Item (
ID BIGINT NOT NULL UNIQUE AUTO_INCREMENT,
ConnectLog BIGINT NOT NULL,
ItemClass BIGINT NOT NULL,
ItemType BIGINT NOT NULL,
AcqDate TIMESTAMP NOT NULL DEFAULT NOW(),
Vendor BIGINT NOT NULL,
Cost DECIMAL(64,2) NOT NULL DEFAULT '0.00',
Image VARCHAR(255),
Access INTEGER NOT NULL,
Notes VARCHAR(255),
PRIMARY KEY (ID)
)
Book (
ID BIGINT NOT NULL UNIQUE AUTO_INCREMENT,
Item BIGINT NOT NULL UNIQUE,
ISBN BIGINT,
Title VARCHAR(255) NOT NULL,
Authors VARCHAR(255),
Publisher VARCHAR(255),
DDC VARCHAR(255),
PubDate DATETIME,
Edition VARCHAR(255),
BookCase VARCHAR(255),
Shelf VARCHAR(255),
PRIMARY KEY (ID)
)
Désormais, lorsqu'un utilisateur fait une entrée pour Book
, d'abord une entrée pour Item
doit d'abord être créé. Mais je dois trouver le ID
pour l'entrée Item
qui a été créé afin que je puisse utiliser cette valeur pour Item
dans le tableau Book
...
Comment? :/
Droite. Mais un doute: Sur une lourde charge, est-il possible qu'une autre entrée pour Item puisse être exécutée AVANT d'atteindre la requête 'insert into Book'? – Bojack
Je ne suis pas positif à ce sujet, mais j'imagine que l'insert_id est retourné à PHP après la fin de l'instruction, puis PHP met en cache quelque part. Je doute un peu que cela se passe et fait une autre requête pour le savoir. C'est possible cependant. –
Vous pourriez vouloir vérifier la documentation, je l'ai parcourue mais je n'ai pas trouvé grand-chose. http://us2.php.net/mysql_insert_id –