我已经花了三天的时间试图解决这个问题,阅读了所有关于dbDelta的参考资料。
我的最终目标是创建一个包含唯一ad\\U id、ad\\U触发器对的表。
这不会创建表:
if($wpdb->get_var("SHOW TABLES LIKE \'$ad_trigger_table_name\'") != $ad_trigger_table_name) {
$sql = "CREATE TABLE " . $ad_trigger_table_name . " (
ad_id int(12) NOT NULL,
ad_trigger text NOT NULL,
PRIMARY KEY (ad_id,ad_trigger)
);";
dbDelta($sql);
}
这也不是:$sql = "CREATE TABLE " . $ad_trigger_table_name . " (
ad_id int(12) NOT NULL,
ad_trigger text NOT NULL,
UNIQUE KEY pkey (ad_id,ad_trigger)
);";
dbDelta($sql);
这确实可行,但并没有给我一个复合键。if($wpdb->get_var("SHOW TABLES LIKE \'$ad_trigger_table_name\'") != $ad_trigger_table_name) {
$sql = "CREATE TABLE " . $ad_trigger_table_name . " (
id int(12) NOT NULL auto_increment,
ad_id int(12) NOT NULL,
ad_trigger text NOT NULL,
PRIMARY KEY (id)
);";
dbDelta($sql);
}
任何人都能对这件事有所了解,那就太好了!