2011-08-29 71 views
0

我創建一個觸發器,但得到這個錯誤:問題創造觸發

android.database.sqlite.SQLiteException: near "CREATE": syntax error: CREATE TRIGGER fk_item_place BEFORE INSERT ON CREATE TABLE Item_Place(PlaceIDfk INTEGER ,ItemID NTEGER , FOREIGN KEY (PlaceIDfk) REFERENCES Place_Table(Place_ID) ON DELETE CASCADE FOREIGN KEY (ItemID) REFERENCES ContentTable(ContentID)); FOR EACH ROW BEGIN SELECT CASE WHEN ((SELECT Place_ID FROM Place_Table WHERE Place_ID=new.PlaceIDfk) IS NULL) THEN RAISE (ABORT,'Foreign Key Violation') END ; END ;

我的代碼是這樣的:

db.execSQL("CREATE TRIGGER fk_item_place " + 
      " BEFORE INSERT "+ 
      " ON "+ Item_places + 
      " FOR EACH ROW BEGIN "+ 
      " SELECT CASE WHEN ((SELECT "+ PlaceID +" FROM "+ PlaceTable +" WHERE "+ PlaceID +"=new." + place_id + ") IS NULL)"+ 
      " THEN RAISE (ABORT,'Foreign Key Violation') END ;" + 
      " END ;"); 

我在做什麼錯?

回答

0

您不能有一個ON CREATE TABLE觸發器。確保Item_places是表名,而不是DDL。

+0

謝謝so0000000000000多我錯誤的表名實際上是** Item_place **和即時通訊所以dum代碼** ** Item_places ** –

+0

@kshf_x您能否將馬特的回答標記爲正確答案? – JJD