একটি পূর্ণসংখ্যা কলাম SQLite এর ডিফল্ট মান সেট করুন


116

আমি অ্যান্ড্রয়েডে একটি এসকিউএল ডাটাবেস তৈরি করছি।

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
    + KEY_NAME + " TEXT NOT NULL, " 
    + KEY_WORKED + " INTEGER, "
    + KEY_NOTE + " INTEGER);");

KEY_NOTEপ্রতি সারির 0(শূন্য) তৈরির জন্য (যা একটি পূর্ণসংখ্যা) এর ডিফল্ট মান সেট করা সম্ভব ? যদি তা হয় তবে সঠিক কোডটি কী হওয়া উচিত।

উত্তর:


231

এসকিউএলাইট কীওয়ার্ডটি ব্যবহার করুন default

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
    + KEY_NAME + " TEXT NOT NULL, "
    + KEY_WORKED + " INTEGER, "
    + KEY_NOTE + " INTEGER DEFAULT 0);");

এই লিঙ্কটি দরকারী: http://www.sqlite.org/lang_createtable.html


8

ডিফল্ট মান সহ একটি কলাম:

CREATE TABLE <TableName>(
...
<ColumnName> <Type> DEFAULT <DefaultValue>
...
)

<DefaultValue> এটির জন্য একটি স্থানধারক:

  • আক্ষরিক মান
  • ( অভিব্যক্তি )

উদাহরণ:

Count INTEGER DEFAULT 0,
LastSeen TEXT DEFAULT (datetime('now'))

3

এটি ঘটেছিল যে আমি কেবল কোডিং শিখতে শুরু করেছি এবং এসকিউএলাইটে আপনি যেমন জিজ্ঞাসা করেছেন তেমনই আমারও দরকার ছিল (আইএমএম [এসকিউএলস্টুডিও] (৩.১.১) ) ব্যবহার করে।

এটা যে আপনি কলাম এর 'সংজ্ঞায়িত করতে হবে কনস্ট্রেইন্ট অর্থাৎ ' হিসেবে ' নাল ' তারপর 'ব্যবহার করে আপনার পছন্দসই সংজ্ঞা লিখে ডিফল্ট ' ' কনস্ট্রেইন্ট অর্থাৎ ' বা এটি কাজ করে না (will আমি এই একটি SQLite বা প্রোগ্রাম requirment জানি না )।

আমি যে কোডটি ব্যবহার করেছি তা এখানে:

CREATE TABLE <MY_TABLE> (
<MY_TABLE_KEY>       INTEGER    UNIQUE
                                PRIMARY KEY,
<MY_TABLE_SERIAL>    TEXT       DEFAULT (<MY_VALUE>) 
                                NOT NULL
<THE_REST_COLUMNS>
);

এটি মাইএসকিউএলে ব্যবহৃত একই যুক্তি; একটি নালামযোগ্য কলামের ডিফল্টটি ইতিমধ্যে নুল, সুতরাং অন্যথায় একটি ডিফল্ট সেট করতে কলামটি অ-শর্তযুক্ত বলে বোঝায়। আপনি যদি নাল না ঘোষনা ছাড়াই একটি নালামযোগ্য কলামে একটি ডিফল্ট নির্দিষ্ট করে থাকেন, তবে ডিফল্ট NULL মান সন্নিবেশ করা হলে এটি আপনাকে বিভ্রান্ত করতে পারে।
চনফ

1
অনন্য বিবৃতিটির প্রয়োজন নেই এবং ইতিমধ্যে প্রাথমিক কী বিবৃতি দিয়ে বোঝানো হয়েছে।
দানি

@ দানি আমি আপনার সাথে একমত, তবে এসকিউএলসাইট স্টুডিও ৩.১.১ "অনন্য" শর্তের অভাব থেকে যে ত্রুটি সৃষ্টি করেছিল তা বাইপাস করার একমাত্র উপায় ছিল
নাদের বেলাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.