Mysql 如何用一个表单在4个表中插入数据

Mysql 如何用一个表单在4个表中插入数据,mysql,join,Mysql,Join,在新闻项目中,使用单个表单插入多个表时遇到问题 insert into news JOIN news2 JOIN news3 JOIN news4(title,image,news,descn,category) values('$title','$image','$news','$descn','$category') 那是不可能的。INSERT语句总是只使用一个表。如果要插入多个表并确保所有插入都被视为一个原子操作,请使用事务。像这样: START TRANSACTION; INSERT

在新闻项目中,使用单个表单插入多个表时遇到问题

insert into news JOIN news2 JOIN news3 JOIN news4(title,image,news,descn,category) values('$title','$image','$news','$descn','$category')

那是不可能的。INSERT语句总是只使用一个表。如果要插入多个表并确保所有插入都被视为一个原子操作,请使用事务。像这样:

START TRANSACTION;
INSERT INTO x VALUES ...
INSERT INTO y VALUES ...
INSERT INTO z VALUES ...
COMMIT;
当错误发生时,您执行
回滚而不是提交,并且该事务的所有语句都将撤消

另一方面,当您有news、news2、news3等表时,这听起来像是糟糕的数据库设计。您应该认真重新考虑这一点,因为用于事务性工作负载的关系数据库的目标通常是避免冗余数据。为了实现这种标准化,我们使用了。这里有一个链接到一个。(我还没有读过,但在谷歌搜索后快速浏览一下,它看起来很有希望)


另一个注意事项:在联接表时,请提供联接条件。否则,一个表的每一行都会与其他表的每一行合并,这可能是一个巨大的结果集。你通常不想那样。考虑阅读一个关于SQL的教程。

请给我们更多的细节。阅读:为什么你显然有4个相同结构的新闻表?你想把同一条记录插入所有记录中吗?你究竟为什么要复制相同的数据4次?这是没有意义的(除了这个语法无论如何都是不允许的)。