একটি পূর্ণসংখ্যা কলাম 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.