안녕하세요 안드로이드 초보개발자입니다.

 

여태 app 개발을 하면서 db는 다른 사람이 만들어 놓은 것만 가져다 사용하였는데 처음으로 db를 직접 생성해야 해서

이것 저것 하다 딱 막혀서 이렇게 도움을 요청드립니다.

 

예를 들어 아래와 같은 table을 만들려고 합니다.

--------------------------------------------------------------------------------------------------------

CREATE TABLE `TEST` (
`_id` varchar(3) NOT NULL COMMENT 'id',
`_name` varchar(50) DEFAULT NULL COMMENT '이름',
`_nick` varchar(30) DEFAULT NULL COMMENT '닉네임',
`service_yn` varchar(1) DEFAULT 'N' COMMENT '서비스여부',
PRIMARY KEY (`_id`)
) ENGINE=MyISAM DEFAULT CHARSET=euckr COMMENT='테스트'

--------------------------------------------------------------------------------------------------------

 

이를 안드로이드에서 사용하는 코드는 하기와 같이 하였더니 다음과 같은 에러가 발생하였습니다.

--------------------------------------------------------------------------------------------------------

 public static final class T_Test implements BaseColumns{
public static final String TABLE = "TEST";
public static final String _ID="_id";
public static final String _NAME="_name";
public static final String _NICK="_nick";
public static final String SERVICE_YN="service_yn";
public static final String T_TEST_CREATE =
"create table "+TABLE+"("
+_ID+" text not null ,"
+_NAME+" text DEFAULT (null) ,"
+_NICK+" text DEFAULT (null) ,"
+_YN+ " text DEFAULT (N) ,"
+"CONSTRAINT "+TABLE+"_PK PRIMARY KEY (" + GAME_ID + "))";
} 

--------------------------------------------------------------------------------------------------------

 

로그

E/AndroidRuntime(6533): FATAL EXCEPTION: main
E/AndroidRuntime(6533): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dbtest/com.example.dbtest.DbTest}: android.database.sqlite.SQLiteException: default value of column [service_yn] is not constant: create table TB_GAME(game_id text not null ,game_name text DEFAULT (null) ,game_nick text DEFAULT (null) ,service_yn text DEFAULT (N) ,CONSTRAINT TB_GAME_PK PRIMARY KEY (game_id))
E/AndroidRuntime(6533):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
E/AndroidRuntime(6533):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(6533):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(6533):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(6533):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(6533):  at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(6533):  at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(6533):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(6533):  at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(6533):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(6533):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(6533):  at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(6533): Caused by: android.database.sqlite.SQLiteException: default value of column [service_yn] is not constant: create table TB_GAME(game_id text not null ,game_name text DEFAULT (null) ,game_nick text DEFAULT (null) ,service_yn text DEFAULT (N) ,CONSTRAINT TB_GAME_PK PRIMARY KEY (game_id))
E/AndroidRuntime(6533):  at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
E/AndroidRuntime(6533):  at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1763)
E/AndroidRuntime(6533):  at com.example.dbtest.database.DbOpenHelper$DatabaseHelper.onCreate(DbOpenHelper.java:30)
E/AndroidRuntime(6533):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:126)
E/AndroidRuntime(6533):  at com.example.dbtest.database.DbOpenHelper.open(DbOpenHelper.java:58)
E/AndroidRuntime(6533):  at com.example.dbtest.DbTest.onCreate(DbTest.java:33)
E/AndroidRuntime(6533):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(6533):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

 

지금 꽉 막혀있는 상태입니다. 죄송한데 도움 좀 요청드립니다.