Android Sqlite使用Table_Name.Column_Name创建表

时间:2013-09-09 15:07:05

标签: android sqlite

在我的应用程序中,我有3个带有一些外键和内连接查询的Sqlite表。

我已经创建了DatabaseSqlHelper类,它保存了我的所有表和列名称。

我尝试使用此行来创建表

Create Table If Not Exists Users(
           Users.User_Id Varchar(50) Primary Key Not Null,
           Users.Name Varchar(50) Not Null,
           Users.First_Name Varchar(50),
           Users.Profile_Picture Blob);

我一直在mySql中对此进行测试,并且没有问题,但在Android上运行时我得到:

09-09 17:58:30.350: E/Database(12973): Failure 1 (near ".": syntax error) on 0x1cf850 when preparing 'Create Table If Not Exists Users(Users.User_Id Varchar(50) Primary Key Not Null,Users.Name Varchar(50) Not Null,Users.First_Name Varchar(50),Users.Profile_Picture Blob);'.

我使用TableName.ColumnName的原因是因为我保存在字符串中的名称,所以稍后在内部联接中,我将更容易在Users.Id = TableName.Id

有没有办法解决它?

2 个答案:

答案 0 :(得分:1)

删除每列前面的表名和句号。

实施例

Create Table If Not Exists Users(
           User_Id Varchar(50) Primary Key Not Null,
           Name Varchar(50) Not Null,
           First_Name Varchar(50),
           Profile_Picture Blob);

使用Users.id可以很好地进行内部联接。在创建表时,您无需指定它即可工作。只需在执行连接时指定表名

离。 select Id as Tablename.Id from Tablename inner join Users as U on U.user_id = Tablename.Id

答案 1 :(得分:0)

尝试删除sql中的所有User.