我有一個表在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