SQLITE 使用 UNIQUE 列创建 table

SQLITE create table with UNIQUE column

我正在尝试在 PHP 脚本中创建一个带有 UNIQUE 列的 table,但出现错误。

exec("sqlite3 /location/file.db 'CREATE TABLE $tablename (id INTEGER PRIMARY KEY AUTOINCREMENT,record_time_long UNIQUE VARCHAR(255),update_time_long UNIQUE VARCHAR(255),name VARCHAR(255),macaddress VARCHAR(255),longitude VARCHAR(255),latitude VARCHAR(255),sourcedevice VARCHAR(255),human_address VARCHAR(250),smce_hash VARCHAR(250),sm_hash VARCHAR(250),islowenergy VARCHAR(250),rssi INT(4));'");

当脚本运行时我得到

SQLite3::prepare(): Unable to prepare statement: 1, no such table: tablename in /location/script.php on line 41PHP message: PHP Fatal error:  Uncaught Error: Call to a member function execute() on bool in /location/script.php:43

error.logNGINX 网络服务器 中。所以 table 没有创建。如果我不在列名后添加 UNIQUE 约束,它工作正常。

我也曾尝试在创建后立即修改我现有的 table,但我什至没有收到错误并且未添加 UNIQUE 约束。

exec("sqlite3 /location/file.db 'CREATE UNIQUE INDEX random_name ON $tablename(update_time_long);'");

请帮助我,如何在我的 PHP 脚本中创建一个列 UNIQUE

UNIQUE 关键字应添加在 Column 类型之后,即 varchar(255).

所以改变

update_time_long UNIQUE VARCHAR(255)

update_time_long VARCHAR(255) UNIQUE