Objective c 如何在这个SQLite insert语句中获得NULL?

Objective c 如何在这个SQLite insert语句中获得NULL?,objective-c,sqlite,fmdb,Objective C,Sqlite,Fmdb,我有3个SQLite表。每个都有一个ID作为主键;如果我在将记录插入ID时提供NULL,它将自动递增键(至少SQLite文档是这么说的)。我正试图将NULL放入此insert语句,但它崩溃('NSInvalidArgumentException',原因:'*-[NSPlaceholderString initWithFormat:locale:arguments:::::nil arguments' )。下面是该语句的一个片段(dbCmd定义为NSString): dbCmd=@“插入客户数据(

我有3个SQLite表。每个都有一个ID作为主键;如果我在将记录插入ID时提供NULL,它将自动递增键(至少SQLite文档是这么说的)。我正试图将NULL放入此insert语句,但它崩溃('NSInvalidArgumentException',原因:'*-[NSPlaceholderString initWithFormat:locale:arguments:::::nil arguments' )。下面是该语句的一个片段(dbCmd定义为NSString):

dbCmd=@“插入客户数据(ID、总线名称、电子邮件、电话、店铺名称、店铺地址1、店铺地址2、店铺城市州、店铺邮编,”
“SHIP_NAME、SHIP_ADDR1、SHIP_ADDR2、SHIP_CITY_STATE、SHIP_ZIP、SALES_NAME、NOTES)值('”;
dbCmd=[dbCmd stringByAppendingFormat:NULL];//来自sqlite文档:

如果在insert上未指定ROWID,或者指定的ROWID值为NULL,则会自动创建相应的ROWID


如果您没有指定ID的具体原因,您可以直接忽略它!

您有没有具体原因不在插入中完全忽略ID?我想我必须有一个ID作为主键,以便SQLite可以自动递增它…您是否告诉我,如果我忽略它,它仍然可以正常工作?是的!如果您忽略ID,它将自动运行oincrement(如果它是一个自动增量列)感谢您为我澄清这一点…我读了,但真的不太明白。:D
        dbCmd = @"INSERT INTO CustData (ID, BUS_NAME, EMAIL, PHONE, SHOP_NAME, SHOP_ADDR1, SHOP_ADDR2, SHOP_CITY_STATE, SHOP_ZIP, "
    "SHIP_NAME, SHIP_ADDR1, SHIP_ADDR2, SHIP_CITY_STATE, SHIP_ZIP, SALES_NAME, NOTES) VALUES('";
    dbCmd = [dbCmd stringByAppendingFormat:NULL];  //  <--------------------
    dbCmd = [dbCmd stringByAppendingString: [methodParameters objectForKey: @"businessName"]];
    dbCmd = [dbCmd stringByAppendingString: @"', '"];
    dbCmd = [dbCmd stringByAppendingString: [methodParameters objectForKey: @"email"]];