我正在使用MySQL 5.0,我想知道是否有办法禁用表上的删除.如同,不能让任何用户从平板电脑中删除任何内容,只更新和插入.
我在网站上有一些保险信息,我只想编辑用户想要更改的某些字段,例如:用户,ID,电话,地址,城市
并且用户想要更改他的城市和电话...我是否必须对每个特定情况进行查询,或者是否有代码可以帮助我检索密钥(电话)和值(9397171602)?
然后在查询中发送它
我试图找到如何将查询中的变量发送到触发器,但它会影响第二个表.我正在使用它来创建一个日志表,其中任何更新或插入的内容都会记录在日志表中.例如
//Inserts into the table the username and password
$sql = "INSERT INTO table VALUES ($_POST['username'], $_SESSION['password']);
Run Code Online (Sandbox Code Playgroud)
触发DDL语句
DELIMITER $$
//Creates trigger to insert into table1 ( logs ) the userid and patientid ( which has to come from php )
USE `baemer_emr`$$
CREATE
DEFINER=`baemer_emr`@`localhost`
TRIGGER `table1`.`after_insert`
AFTER INSERT ON `baemer_emr`.`table1`
FOR EACH ROW
BEGIN
INSERT INTO table2 VALUES (NEW.idn, $_POST[userid], $_SESSION[patientid]);
END$$
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我有表1其中id为autoincrement.表2具有与表1的外键关系,其中我需要将表1中生成的值插入表2中
-- Trigger DDL Statements
DELIMITER $$
USE `baemer_emr`$$
CREATE TRIGGER `baemer_emr`.`after_insert_log` AFTER INSERT ON `baemer_emr`.`table1`
FOR EACH ROW
BEGIN
INSERT INTO table2 VALUES (last_insert_id() , something);
END$$
Run Code Online (Sandbox Code Playgroud)
它正在工作,但正在显示之前的数字.例如
插入表1,id = 15.在表2中返回14.任何想法?