उपयोगकर्ताओं तालिका:ट्रिगर डालने से पहले MYSQL में ऑटो-वृद्धि मूल्य का उपयोग करना?
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;
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;
उपयोगकर्ताओं मेज पर डालने ट्रिगर से पहले:
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
असल में, मेरी समस्या है कि यहाँ है ट्रिगर पर जब मैं उस उपयोगकर्ता की आईडी डालने का प्रयास करता हूं जो स्वचालित रूप से MySQL (पीके, एनएन, ऑटो-एन्हांसमेंट) द्वारा असाइन किया गया है, तो यह user_records टैब पर उपयोगकर्ता आईडी के लिए 0 डालता है le। मैं इसे कैसे करूँगा, इसलिए यह आईडी का चयन करेगा कि उपयोगकर्ता को एसक्यूएल द्वारा असाइन किया जा रहा है, और इसे रिकॉर्ड एंट्री पर उपयोगकर्ता आईडी के रूप में रखा गया है (जहां आईडी 'CREATED' के बाद सही है)?
इसके अलावा, अगर आप किसी भी अन्य अनुकूलन नहीं है जो टेबल पर बनाया जा सकता है देखते हैं, मुझे पता है के लिए स्वतंत्र महसूस: before insert
के बजाय after insert
के लिए डी
धन्यवाद! मैं ऊपर हट जाऊंगा लेकिन मुझे और प्रतिनिधि की जरूरत है! –
समाधान प्रदान करने के लिए धन्यवाद –