我有一个表在MySQL:数据标准化在MySQL
user_item_text
username, item, text
我希望将数据归到三个表:
users
user_id, username
items
item_id, item_name
text
text_id, text_name
如何使用现有的user_item_text
表中创建三个表格描述如何?大约有800000条记录。
我有一个表在MySQL:数据标准化在MySQL
user_item_text
username, item, text
我希望将数据归到三个表:
users
user_id, username
items
item_id, item_name
text
text_id, text_name
如何使用现有的user_item_text
表中创建三个表格描述如何?大约有800000条记录。
这里是如何处理一代表 “用户” 的例子:
create table users(
user_id int not null auto_increment,
username varchar(50),
primary key(user_id),
index ind_user_username(username)
) engine = XXX;
insert into users(username) select distinct username from user_item_text
alter table user_item_text add user_id integer null
update user_item_text uit join users u on uit.username = u.username
set uit.user_id = u.user_id
alter table user_item_text drop column username
也许你会在运行最后一次之前需要添加以下步骤:
users.username
唯一索引,而不是普通的指数user_item_index.user_id
应该有FK希望它能帮助。
ps。我没有测试查询。他们只是向你展示一般方法。
创建表格,然后使用与选择组合的插入。据我所知,可以使用表格进行插入。
例如: 用户和主键是自动增量
Insert into users (username) Select username from user_item_text