我在使用 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)" ) ;
查询:
$dbh->do( "INSERT INTO Files ( UserID, File_Name )
VALUES ( '$_[0]', '$_[1]' )" ) ;
尽管我已将 FileID 标识为自动增量和主键,但当我使用上述查询添加新字段时,文件 ID 仍保留为空并且不会自动递增。有什么想法吗?我的表格设计错了吗?
干杯,
内特
最佳答案
我建议您在文件表上仅使用 FileID 字段创建主键(您有两个字段)。我认为您有一个拼写错误:它是 AUTOINCRMENT(您输入 AUTO_INCRMENT)。看到这个:http://www.sqlite.org/autoinc.html
关于sql - 使用 Perl SQLite 自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349161/