请教mysql怎么实现向多个表同时插入数据

如题所述

第1个回答  2013-10-10
在一个jsp 页面表单上的数据,submit 后表单上不同的数据分别同时插入不同的表. 具体表的情况是这样的的,三个表为: person 表,operator 表,contact 表,三个表的主键为ObjectID,通过ObjectID 关联. 假如只设置了person 表的ObjectID 是自增字段,应该如何实现? 假如ObjectID 不是自增字段,应该如何设计数据表? ------解决方案-------------------------------------------------------- 建一个sequence 表,在插入表之前先取得person 表的ObjectID,然后分别插入各张表。 存储过程也可以, 还有可以将表的默认值关联到sequence 上,这样插入的时候不需要插入这个字段,只要插入其他值就可以。 ------解决方案-------------------------------------------------------- 1、假如只设置了person 表的ObjectID 是自增字段,应该如何实现? -------------------- person 表Objectid 是自增字段,那么可以先插入它,然后取出它。如果你使用了ORM 框架,那么它会自动帮你把KEY 取出来帮设置好。如果没有用框架,那么用MYSQL 的SQL 指令SELECT LAST_INSERT_ID()是可以取到你刚刚插入的记录的KEY的。然后吧这个值附给其他2个记录。 2、假如ObjectID 不是自增字段,应该如何设计数据表? -- 建议不要这样做。 非要这么做的话,可以: (1)做一个方法,在每次插入前,找到 person 表的最大的 Objectid,然后加1。这种办法需要考虑的是并发冲突导致抢号事件发生,所以要考虑采用同步。 (2)做一个专门产生号码的空表,只定义一个自增字段,然后用这个表的KEY 作为3 个表的KEY。--其实跟前面的方法一样,只不过把person的自增字段移到了这个多余的表而已。 (3)专门做一个流水号表,维持一行记录,每次把流水号加 1。这种方式同样要考虑同步的问题。 综上所述,还是1 合适!

MySQL教程如何使用两个表联合添加数据mysql两表联合添加
如上所示,我们使用SELECT语句来从dual表中选择数据(此处使用dual表是为了满足语法要求,在实际使用中,可能需要从另一个表中选择数据)。然后,我们使用WHERE子句来检查是否已经存在id为1的记录。如果不存在,则我们添加该记录。同样的,我们也可以使用另一个JOIN操作来添加与另一个person(或address)记录...

MySQL表同步方法详解实现不同表数据自动同步mysql不同表数据同步
创建插件,将源表数据同步到目标表中 \/ class SyncPlugin : public mysql_storage_engine { public:SyncPlugin(handlerton *hton, const char *name, int flags) : mysql_storage_engine(hton, name, flags) {} virtual int open(const char *name, const char *mode, uint *flag, ha_create_i...

MySQL双表数据同步的实现方法简介mysql两表数据同步
1. 创建两个数据表,分别称为Table1和Table2。2. 创建MySQL Trigger,在Table1上进行更新操作时将数据同步到Table2。3. 确认Table2中已经成功添加了新数据。4. 在Table1上更新数据,并检查数据表2是否同步更新。使用MySQL Trigger实现双表数据同步的示例代码:–创建Table1和Table2数据表 CREATE...

MySQL多库表同步实现方法mysql不同库同步表
除了使用现成的同步工具,我们还可以编写脚本来实现MySQL多库表同步。在实现过程中,需要使用MySQL提供的两个关键工具——mysqldump和mysql命令。使用mysqldump命令可以将指定数据库中的所有表数据导出到一个文件当中,使用mysql命令则将该文件中的数据导入到指定的库和表中。以下是代码实现:!\/bin\/bash 导出源...

MySQL实现两张表的内连接操作mysql一张表内连接
我们需要创建两张表并插入数据。以下是员工表和部门表的示例代码:员工表(employee):CREATE TABLE employee (id INT PRIMARY KEY,name VARCHAR(50),position VARCHAR(50),department_id INT);INSERT INTO employee (id, name, position, department_id) VALUES (1, ‘Tom’, ‘...

如何进行MySQL的三表查询全连接操作mysql三表查询全连接
1. 创建三个数据表并插入数据。2. 通过使用SELECT 语句来查询数据以从多个表中检索所需信息。3. 通过使用完整的外连接,您还可以查询来自所有表的记录,包括这些记录在其他表中不存在的情况。在实际使用中,您可能需要更复杂的查询,但是这些基础知识应该足以使您理解如何使用MySQL进行三表查询全连接操作...

MySQL实现不同表同步mysql不同表之间同步
1. 配置主数据库,在my.cnf中添加以下配置:[mysqld]log-bin=mysql-bin server-id=1 重启MySQL服务后生效。2. 配置从数据库,在my.cnf中添加以下配置:[mysqld]server-id=2 重启MySQL服务后生效。3. 在主数据库中创建需要同步的数据库及表,并为主数据库授权从服务器重复使用master数据:CREATE ...

MySQL实战学会如何进行两表关联添加mysql两表关联添加
这两个表的一个共同字段是员工所在的部门编号(DepartmentID)。我们希望将一些新员工添加到Employee表,并在添加新员工信息的同时,自动将员工加入到相应的部门中。创建两个表 我们需要创建两个表。在MySQL中,我们可以使用如下代码来创建两个表并插入数据。CREATE TABLE Departments (DepartmentID INT PRIMARY...

MySQL全连接实现三个表的联接mysql三个表做全连接
例如内连接、左连接和右连接。内连接是指只返回两个表中匹配的记录,而左连接和右连接则分别返回左表和右表中所有的记录,加上与另一个表中匹配的记录。在实际工作中,我们常常需要将多个表进行联接,以便进行数据的查询和统计。了解MySQL的联接语法和实现方法,可以帮助我们更加高效地处理和分析数据。

MySQL中如何实现三表关联操作mysql三联表
— 创建订单表 CREATE TABLE order (id INT PRIMARY KEY AUTO_INCREMENT,order_no VARCHAR(100) NOT NULL,user_id INT NOT NULL,product_id INT NOT NULL,FOREIGN KEY (user_id) REFERENCES user(id),FOREIGN KEY (product_id) REFERENCES product(id));— 插入测试数据 INSERT INTO...

相似回答