所以它说我必须在 PRIMARY KEY 之间放置一个双空格。这是否意味着我必须在 PRIMARY 和 KEY 之间放置一个双空格。另外,将它也放在 PRIMARY KEY 的定义之间是什么意思?谢谢!
- 您必须将每个字段放在 SQL 语句中的单独一行。
- 在 PRIMARY KEY 和主键定义之间必须有两个空格。
- 您必须使用关键字 KEY 而不是其同义词 INDEX,并且您必须至少包含一个 KEY。
- 您不得在字段名称周围使用任何撇号或反引号。
- 字段类型必须全部小写
- SQL 关键字,如 CREATE TABLE 和 UPDATE,必须大写。
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL PRIMARY KEY AUTO_INCREMENT,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
name tinytext NOT NULL,
text text NOT NULL,
url varchar(55) DEFAULT '' NOT NULL,
UNIQUE KEY id (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
最佳答案
这是一个很好的问题,不,PRIMARY KEY 之间不需要额外的空格。 dbDelta() 函数对于用作参数的 SQL 语句可能不稳定,因此不要像通常那样使用 PRIMARY KEY 声明。声明主键 (PRIMARY KEY),然后定义 (id)。您应该按如下方式添加主键:
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
name tinytext NOT NULL,
text text NOT NULL,
url varchar(55) DEFAULT '' NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
关于php - 用于使用插件创建表格的 Wordpress 法典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135373/