我不知道为什么它没有运行。当我输出dbDelta时,它说它创建了表,但它没有。
我认为我的SQL是有效的。去掉id和UNIQUE KEY之间的所有内容将导致生成表,但我看不出其他行有什么问题。
谢谢
function email_install () {
global $wpdb;
$table_name = $wpdb->prefix . "table_name_email";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE " . $table_name . " (
id INT NOT NULL AUTO_INCREMENT,
time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
email VARCHAR NOT NULL,
page VARCHAR NOT NULL,
UNIQUE KEY (id)
) ". $charset_collate . ";";
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta( $sql );
}
SO网友:Domain
sql查询中有错误。您已经将时间定义为datetime和current\\u timestamp中提到的默认值。将时间定义为时间戳。还指定电子邮件和页面字段的长度。
已更正的查询:
$sql = "CREATE TABLE " . $table_name . " (
id INT NOT NULL AUTO_INCREMENT,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, //Change datetime to timestamp
email VARCHAR(50) NOT NULL, //Change length
page VARCHAR(50) NOT NULL, //Change length
UNIQUE KEY (id)
) ". $charset_collate . ";";