我不知道你为什么要为你的“ID”创建一个唯一的约束,它可以是主键。
另外,请注意,当您使用唯一键索引或复合键或主键以外的任何其他索引创建表时,dbDelta在某些版本的MariaDB中会失败。
解决方法是首先创建表:
$sql = "CREATE TABLE ". $this->table_name ." (
id bigint(20) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL default \'\',
rows int(11) NOT NULL default 0,
cols int(11) NOT NULL default 0,
subs varchar(255) NOT NULL default \'\',
color varchar(255) NOT NULL default \'\',
responsive tinyint(1) DEFAULT \'0\',
tvalues longtext NOT NULL,
PRIMARY KEY (id)
) $this->charset_collate;";
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta( $sql );
然后,您可以使用$wpdb使用“ALTER TABLE”方法创建唯一索引。
global $wpdb;
$wpdb->query("ALTER TABLE `{$this->table_name}` ADD UNIQUE KEY(`column_name`)");
注意:在逻辑中运行上述查询之前,可能需要先检查索引是否存在。
希望这有帮助:-)