不那麼優雅,但你可以在每個表上添加一個標識整數列,指定該列的默認值爲1,2(取決於它是哪個表 - 你甚至可以查找查找表(tableId - >表名),然後你應該能夠分辨哪個表給定行來到
你不得不做出MERGE表太當然同樣的變化...
精心撕開關閉MERGE MySQL docs:
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,message CHAR(20)) ENGINE=MyISAM;
CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,message CHAR(20)) ENGINE=MyISAM;
INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1');
INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2');
CREATE TABLE total (a INT NOT NULL AUTO_INCREMENT,message CHAR(20),INDEX(a)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
alter table t1 add column identifier int unsigned not null default 1;
alter table t2 add column identifier int unsigned not null default 2;
drop table total;
CREATE TABLE total (a INT NOT NULL AUTO_INCREMENT,message CHAR(20),identifier int unsigned,INDEX(a)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
雖然你可以改變所有的40個表格,但它的工作相當遲鈍...
只需注意一下,使用整數而不是字符串的效率通常會更好。 –
好點!將相應地編輯。 –