MySQL数据库可以通过触发器,使之无法修改某些字段的数据,同时又不会影响修改其他字段。
?
1234567891011 | DROP TRIGGER IF EXISTS `members`; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE= '' ; DELIMITER // CREATE TRIGGER `members` BEFORE UPDATE ON `members` FOR EACH ROW BEGIN set new. name = old. name ; set new.cellphone = old.cellphone; set new.email = old.email; set new. password = old. password ; END // DELIMITER ; SET SQL_MODE=@OLD_SQL_MODE; |
再举一个例子:
?
12345678 | CREATE TABLE `account` ( `id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, ` user ` VARCHAR (50) NOT NULL DEFAULT '0' , `cash` FLOAT NOT NULL DEFAULT '0' , PRIMARY KEY (`id`) ) COLLATE = 'utf8_general_ci' ENGINE=InnoDB; |
每一次数据变化新增一条数据
?
1234 | INSERT INTO `test`.`account` (` user `, `cash`) VALUES ( 'neo' , -10); INSERT INTO `test`.`account` (` user `, `cash`) VALUES ( 'neo' , -5); INSERT INTO `test`.`account` (` user `, `cash`) VALUES ( 'neo' , 30); INSERT INTO `test`.`account` (` user `, `cash`) VALUES ( 'neo' , -20); |
保护用户的余额不被修改
?
12345678 | DROP TRIGGER IF EXISTS `account`; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE= '' ; DELIMITER // CREATE TRIGGER `account` BEFORE UPDATE ON `account` FOR EACH ROW BEGIN set new.cash = old.cash; END // DELIMITER ; SET SQL_MODE=@OLD_SQL_MODE; |
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)