tabela użytkownicy:Używanie wartości Auto-inkrementacji w MYSQL przed wstawieniem spustu?
CREATE TABLE `users` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(45) DEFAULT NULL,
`username` varchar(16) DEFAULT NULL,
`salt` varchar(16) DEFAULT NULL,
`password` varchar(128) DEFAULT NULL,
`lastlogin` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`joined` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`loggedin` tinyint(1) unsigned NOT NULL DEFAULT '0',
`sessionkey` varchar(60) DEFAULT NULL,
`verifycode` varchar(16) DEFAULT NULL,
`verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
`banned` tinyint(1) unsigned NOT NULL DEFAULT '0',
`locked` tinyint(1) unsigned NOT NULL DEFAULT '0',
`ip_address` varchar(45) DEFAULT NULL,
`failedattempts` tinyint(1) unsigned NOT NULL DEFAULT '0',
`unlocktime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
tabela user_records:
CREATE TABLE `user_records` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`userid` int(8) unsigned DEFAULT NULL,
`action` varchar(100) DEFAULT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
przed wkładki wyzwalacz na tabeli użytkowników:
USE `gknet`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` TRIGGER `before_create_user` BEFORE INSERT ON `users` FOR EACH ROW BEGIN
INSERT INTO user_records (action, userid, timestamp)
VALUES ('CREATED', ID, NOW());
END
Zasadniczo mój problem polega na tym, że na spuście kiedy próbuję wprowadzić identyfikator użytkownika, który jest automatycznie przypisywany przez MySQL (PK, NN, Auto-inkrementacja), po prostu wpisuje 0 dla identyfikatora użytkownika na zakładce user_records le. Jak to zrobić, aby wybrał identyfikator, do którego użytkownik jest przypisany przez SQL, i wstawił go jako identyfikator użytkownika do wpisu rekordów (gdzie ID jest zaraz po "CREATED")?
Ponadto, jeśli widzisz jakieś inne optymalizacje, które mogłyby zostać wprowadzone na stołach, nie krępuj się daj mi znać: D
Dziękujemy! Chciałbym przegłosować, ale potrzebuję więcej rep! –
Dziękujemy za dostarczenie rozwiązania –