Php MYSQL自动更新第二个表查询

Php MYSQL自动更新第二个表查询,php,mysql,sql,primary-key,Php,Mysql,Sql,Primary Key,我有两张桌子 Try1 ID和ValueA 及 try2 ID和valueb 在表Try1中,ID是自动递增的主键,我想将这个Try1.ID链接到try2.ID,这样当我插入Try1 valueA=XXX时,自动生成的ID也会反映在try2中 该解决方案是否与基于第一个密钥创建外键相关 我使用PHPMYADMIN和php插入查询。任何可能的方法都会有帮助,谢谢在Try2中提到Try1 ID作为外键。比如: CREATE TABLE Try2 (id INT, Try1_id INT, value

我有两张桌子

Try1 ID和ValueA

try2 ID和valueb

在表Try1中,ID是自动递增的主键,我想将这个Try1.ID链接到try2.ID,这样当我插入Try1 valueA=XXX时,自动生成的ID也会反映在try2中

该解决方案是否与基于第一个密钥创建外键相关


我使用PHPMYADMIN和php插入查询。任何可能的方法都会有帮助,谢谢

在Try2中提到Try1 ID作为外键。比如:

CREATE TABLE Try2 (id INT, Try1_id INT, valueb INT,
                    INDEX par_ind (Try1_id),
                    FOREIGN KEY (Try1_id) REFERENCES Try1(id)
                      ON DELETE CASCADE
) ENGINE=INNODB;
有关外键的更多信息,请参见此


在Try2中,提及Try1 ID作为外键。比如:

CREATE TABLE Try2 (id INT, Try1_id INT, valueb INT,
                    INDEX par_ind (Try1_id),
                    FOREIGN KEY (Try1_id) REFERENCES Try1(id)
                      ON DELETE CASCADE
) ENGINE=INNODB;
有关外键的更多信息,请参见此


我认为你在寻找一个触发器——类似这样的东西:

DELIMITER $$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `CopyTry1RowToTry2` AFTER INSERT ON `try1` 
    FOR EACH ROW BEGIN
        INSERT INTO `try2` (`id`,`value`) VALUES(NEW.`id`,NEW.`value`)
    END;
$$
DELIMITER ;

我认为你在寻找一个触发器——类似这样的东西:

DELIMITER $$
CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `CopyTry1RowToTry2` AFTER INSERT ON `try1` 
    FOR EACH ROW BEGIN
        INSERT INTO `try2` (`id`,`value`) VALUES(NEW.`id`,NEW.`value`)
    END;
$$
DELIMITER ;

在try1中插入后,当我从try2中选择*时,我没有得到任何结果,它们不是这样的;我想你会感到困惑;您不会在子表中自动获取id,而是在子表中插入时,可以使用PKID并将其插入FK列的子表中。如果你想,一个自动插入到子表,那么你需要一个触发器。插入try1后,当我从try2选择*时,我没有得到任何结果。他们不是这样的;我想你会感到困惑;您不会在子表中自动获取id,而是在子表中插入时,可以使用PKID并将其插入FK列的子表中。如果需要自动插入子表,则需要一个trigger.SQL查询:在try1上为每行插入后创建trigger copyryRowtory2 BEGIN insert INTO try2 SET ID=NEW.ID;MySQL说:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第3行附近要使用的正确语法。这是一个相当普遍的错误,lol。我担心您需要完成研究以满足您的需要-具体来说-仅谷歌MySQL触发器示例。我已经用一个变量更新了我的答案,该变量在没有错误的情况下为我运行SQL查询:在try1上为每一行创建插入后的触发器COPYTRY1ROWTORY2 BEGIN INSERT INTO try2 SET ID=NEW.ID;MySQL说:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第3行附近要使用的正确语法。这是一个相当普遍的错误,lol。我担心您需要完成研究以满足您的需要-具体来说-仅谷歌MySQL触发器示例。我已经用一个为我运行的变体更新了我的答案,没有错误。为什么不在try1表中为valueb添加一列?为什么不在try1表中为valueb添加一列?