Ash*_*ley 8 php mysql triggers bulkinsert sql-insert
我有两个不同的数据库,名称:
我想从dbtest表1中选择所有数据和新条目到dbtest2表2.
我试过这个
$sqlfin = "INSERT INTO dbtest2.Table2 SELECT * FROM dbtest.Table1";
$resultfi = mysqli_query($db_conn, $sqlfin);
Run Code Online (Sandbox Code Playgroud)
但到目前为止没有运气.我怎样才能确保将新记录插入两个表中?任何帮助,将不胜感激?
让我们尝试这种格式
INSERT INTO `dbtest2`.`Table2` SELECT * FROM `dbtest`.`Table1`
Run Code Online (Sandbox Code Playgroud)
INSERT ... SELECT语句包含以下条件:
- 指定IGNORE以忽略会导致重复键冲突的行.
- AUTO_INCREMENT列照常工作.
- 为了确保二进制日志可以用来重新创建原始表,MySQL不允许对INSERT并发插入... SELECT语句(见第8.11.3,"并发插入").
- 为了避免模棱两可的列引用问题,当在SELECT和INSERT指代相同的表中,提供一种用于在SELECT部分所使用的每个表中的唯一的别名,和限定列名在该部分与适当的别名.
创建触发器:用于添加新条目
CREATE TRIGGER copy_record BEFORE INSERT ON dbtest.Table1
FOR EACH ROW
BEGIN
INSERT INTO dbtest2.Table2 (first_name, last_name) VALUES (new.first_name, new.last_name);
END
Run Code Online (Sandbox Code Playgroud)
trigger_event指示激活触发器的操作类型.允许使用这些trigger_event值:
Run Code Online (Sandbox Code Playgroud)INSERT: The trigger activates whenever a new row is inserted into the table; for example, through INSERT, LOAD DATA, and REPLACE声明.
Run Code Online (Sandbox Code Playgroud)UPDATE: The trigger activates whenever a row is modified; for example, through UPDATE statements. DELETE: The trigger activates whenever a row is deleted from the table; for example, through DELETE and REPLACE statements. DROP TABLE表上的TRUNCATE TABLE语句不会激活此触发器,因为它们不使用DELETE.删除分区也不会激活DELETE触发器.
| 归档时间: |
|
| 查看次数: |
3498 次 |
| 最近记录: |