Elf*_*ЯUs 2 sql sqlite perl auto-increment
我在使用Perl的SQLite中遇到自动增量问题.
数据库设计:
$dbh->do( "CREATE TABLE IF NOT EXISTS `Users` (
`UserID` VARCHAR(45) NOT NULL PRIMARY KEY UNIQUE ,
`First_Name` VARCHAR(45) NOT NULL ,
`Last_Name` VARCHAR(45) NOT NULL ,
`Email` VARCHAR(45) NOT NULL ,
`Password` VARCHAR(45) NOT NULL )" ) ;
$dbh->do( "CREATE TABLE IF NOT EXISTS `Files` (
`FileID` INTEGER AUTO_INCREMENT ,
`UserID` VARCHAR(45) NOT NULL ,
`File_Name` VARCHAR(45) NOT NULL ,
`File` BLOB NULL ,
PRIMARY KEY (`FileID`, `UserID`) ,
CONSTRAINT `fk_Files_Users1`
FOREIGN KEY (`UserID` )
REFERENCES `Users` (`UserID` )
ON DELETE CASCADE
ON UPDATE CASCADE)" ) ;
Run Code Online (Sandbox Code Playgroud)
查询:
$dbh->do( "INSERT INTO Files ( UserID, File_Name )
VALUES ( '$_[0]', '$_[1]' )" ) ;
Run Code Online (Sandbox Code Playgroud)
即使我已将FileID识别为AUTO_INCREMENT和PRIMARY KEY,但当我使用上述查询添加新字段时,FileID将保留为空并且不会自动递增.有什么想法吗?我设计的桌子错了吗?
干杯,
内特
我建议您在File表上创建一个主键,只使用FileID字段(您有两个字段).我认为你有一个拼写错误:它是AUTOINCREMENT,(你键入AUTO_INCREMENT).见:http://www.sqlite.org/autoinc.html