mysql - 如何将一个表拆分为两个表并使用交叉链接 ID 链接记录

标签 mysql sql database-design split

我需要一些帮助来将旧客户数据库拆分为客户和地址

例如:

让我们调用旧表TB_old 以及 2 个新的 new_customernew_address

TB_old 具有以下列:

cust_id, firstname, lastname, address, city, postalcode, phone, email, password

new_customers 得到:

cust_id(new,A_I), firstname, lastname, phone, email, pass, address_id(link to new_address)

new_address 得到:

address_id(new), address, city, postalcode, cust_id (link to new_customers)

我已经做了什么:

INSERT INTO new_customers firstname, lastname, phone etc etc
SELECT TB_old.firstname TB_old.lastname etc etc from TB_old

我被困在的地方:

我一直在向 new_address 插入地址,同时使用相对 cust_id 更新它,并使用相对地址更新 new_customer 内的 address_id。

编辑:额外的图像 说清楚:

最佳答案

第一件事:地址属于客户。考虑到这一点,您可以做到这一点:

INSERT INTO new_customers 
    (cust_id, firstname, lastname, phone, email, password)
SELECT 
    (cust_id, firstname, lastname, phone, email, password)
FROM TB_old;


INSERT INTO new_address
    (address_id, cust_id, address, city, postalcode)
SELECT 
    (null, cust_id, address, city, postalcode)
FROM TB_old;

;-)

关于mysql - 如何将一个表拆分为两个表并使用交叉链接 ID 链接记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165764/

相关文章:

php - 我该如何用世界语言填充 SQL 数据库?

mysql - 如何组合两个简单的sql查询

database - 船舶管理数据库结构讨论(应该非规范化?)

php - 管理页面上的用户表,需要很长时间才能加载

php - PHPMyadmin "tî ă jî șî pî"中的罗马尼亚语单词不正确?

php - 如何使用此代码获取user_id

mysql - 数据库 : A table for each language or one table with a language column

php - 交易情况的基本模式

mysql - 如果前一列为空,则只更新一列(下一列)

java - 如何在 Java 中执行 MySQL UNHEX() 函数