← Back to MySQL Course | Chapter 4: Constraints | Lesson 6 of 8

DEFAULT Constraint

DEFAULT एक form जैसा है जो आपके एक question skip करने पर आपके लिए unknown भर देता है, ताकि जगह कभी बिना answer के न रहे।
Syntax
sql
column_name datatype DEFAULT default_value

DEFAULT को समझना

DEFAULT एक fallback value supply करता है जिसे MySQL automatically insert करता है जब भी एक row बिना उस column को explicitly specify किए बनाई जाए — status flags, counters, या timestamps के लिए उपयोगी जिन्हें एक known value पर शुरू होना चाहिए।

उदाहरण: Understanding DEFAULT

sql
CREATE TABLE users (status VARCHAR(20) DEFAULT 'pending');

Defaults की तरह Functions इस्तेमाल करना

किसी column के default की तरह CURRENT_TIMESTAMP इस्तेमाल करना यह automatically record करने का standard तरीका है कि एक row कब बनाया गया, application code को हर insert पर वह value खुद set करने की ज़रूरत के बिना।

उदाहरण: Using Functions as Defaults

sql
CREATE TABLE posts (created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

मौजूदा Tables में DEFAULT Add करना

ALTER TABLE के through एक मौजूदा column पर एक DEFAULT retrofit करना सिर्फ future inserts के लिए क्या होगा बदलता है — यह वापस जाकर table में पहले से मौजूद किसी row को update नहीं करता।

उदाहरण: Adding DEFAULT to Existing Tables

sql
ALTER TABLE users ALTER status SET DEFAULT 'pending';

DEFAULT Constraints हटाना

एक DEFAULT constraint हटाने का मतलब है कि column को omit करने वाली future inserts या तो NULL store करेंगी (अगर column इसकी अनुमति दे) या एक error raise करेंगी (अगर यह बिना किसी fallback के NOT NULL भी है)।

उदाहरण: Dropping DEFAULT Constraints

sql
ALTER TABLE users ALTER status DROP DEFAULT;

NOT NULL के साथ Combined

NOT NULL को DEFAULT के साथ combine करना एक common, safe pattern है: column कभी खाली नहीं हो सकता, और अगर application एक value supply नहीं करता, MySQL error होने के बजाय चुपचाप एक sensible value भर देता है।

उदाहरण: Combined with NOT NULL

sql
CREATE TABLE users (status VARCHAR(20) NOT NULL DEFAULT 'pending');
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह उम्मीद करना कि DEFAULT मौजूदा rows fix कर देगा, जबकि यह सिर्फ future inserts पर apply होता है।
  2. एक DEFAULT वाले column में explicitly NULL insert करना, जो default के बजाय NULL store करता है।
  3. एक ऐसे column type पर DEFAULT CURRENT_TIMESTAMP इस्तेमाल करना जो TIMESTAMP या DATETIME नहीं है।
🔒

Chapter Quiz — Complete all 8 topics to unlock

0/8 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.