Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL通过ALTERTABLE选项添加复合主键_Sql_Sqlite - Fatal编程技术网

SQL通过ALTERTABLE选项添加复合主键

SQL通过ALTERTABLE选项添加复合主键,sql,sqlite,Sql,Sqlite,我已经为数据库创建了一个表 表如下所示(我在mac上为iPhone开发人员使用sqlite) 现在我已经作出了这一声明。我需要的是: 添加复合主键(AttandAccedate,studentNo) 添加外键studentNo 我不知道sqlite3中的alter table语法 所以,我需要帮助 提前感谢。SQLITE3没有语法来执行您想要的操作 从SQLITE文档 SQLite支持一个有限的 改变桌子。ALTERTABLE命令 在SQLite中,允许用户重命名 表或将新列添加到 现有表格

我已经为数据库创建了一个表

表如下所示(我在mac上为iPhone开发人员使用sqlite)

现在我已经作出了这一声明。我需要的是:

  • 添加复合主键(AttandAccedate,studentNo)
  • 添加外键studentNo
我不知道sqlite3中的alter table语法

所以,我需要帮助


提前感谢。

SQLITE3没有语法来执行您想要的操作

从SQLITE文档

SQLite支持一个有限的 改变桌子。ALTERTABLE命令 在SQLite中,允许用户重命名 表或将新列添加到 现有表格。这是不可能的 重命名柱、删除柱或 从中添加或删除约束 桌子


您需要重新创建定义了复合主键和外键的表。

SQLITE3没有语法来执行您想要的操作

从SQLITE文档

SQLite支持一个有限的 改变桌子。ALTERTABLE命令 在SQLite中,允许用户重命名 表或将新列添加到 现有表格。这是不可能的 重命名柱、删除柱或 从中添加或删除约束 桌子


您需要使用定义的复合主键和外键重新创建表。

创建表时,您需要创建主键。据我所知,SQLLite3不支持外键约束。查看更多信息。我希望这会有所帮助。

创建表时,需要创建主键。据我所知,SQLLite3不支持外键约束。查看更多信息。我希望这能有所帮助。

我通过研发获得了解决方案

我想,我应该删除我的表并按照以下语法重新创建表


创建考勤表 ( attenDate varchar,
stuNo整数,
absentDesc varchar,
主键(Attentidate,stuNo)
外键(stuNo)类(stuNo)
)



这将满足我的需要。

我通过研发获得了解决方案

我想,我应该删除我的表并按照以下语法重新创建表


创建考勤表 ( attenDate varchar,
stuNo整数,
absentDesc varchar,
主键(Attentidate,stuNo)
外键(stuNo)类(stuNo)
)



这将满足我的需要。

如果我不能更改,我可以删除并重新创建它,是吗?如果我不能更改,我可以删除并重新创建它,是吗?
create table
(
attendanceDate   varchar,
studentNo        integer,
absentDetail     varchar
);