SQL DEFAULT Constraint

در SQL از DEFAULT Constraint برای تعیین مقدار پیش‌فرض یک ستون استفاده می‌کنیم.
اگر هنگام درج داده مقداری برای آن ستون وارد نشود، مقدار پیش‌فرض به‌صورت خودکار درج می‌شود.

🔹 ساختار کلی

CREATE TABLE table_name ( column_name datatype DEFAULT default_value );

یا با نام‌گذاری اختصاصی:

CREATE TABLE table_name ( column_name datatype, CONSTRAINT constraint_name DEFAULT default_value FOR column_name );

🔹 مثال ساده

CREATE TABLE Students ( StudentID INT PRIMARY KEY, FullName VARCHAR(100), City VARCHAR(50) DEFAULT 'Unknown' );

📌 توضیح:
اگر برای ستون City مقداری مشخص نشود، مقدار 'Unknown' به‌صورت خودکار درج می‌شود.

🔹 درج داده بدون مقدار پیش‌فرض

INSERT INTO Students (StudentID, FullName) VALUES (1, 'Ali Rezaei');

✅ مقدار City به طور خودکار 'Unknown' قرار می‌گیرد.

🔹 درج داده با مقدار مشخص

INSERT INTO Students (StudentID, FullName, City) VALUES (2, 'Sara Ahmadi', 'Tehran');

✅ در این حالت مقدار 'Tehran' جایگزین مقدار پیش‌فرض می‌شود.

🔹 افزودن DEFAULT به جدول موجود

ALTER TABLE Students ADD CONSTRAINT df_city DEFAULT 'Unknown' FOR City;

🔹 حذف DEFAULT Constraint

ALTER TABLE Students DROP CONSTRAINT df_city;

🔹 مثال با مقدار عددی و زمانی

CREATE TABLE Orders ( OrderID INT PRIMARY KEY, Quantity INT DEFAULT 1, OrderDate DATETIME DEFAULT GETDATE() );

📌 توضیح:

  • اگر مقداری برای Quantity مشخص نشود، مقدار پیش‌فرض 1 درج می‌شود.

  • ستون OrderDate به‌صورت خودکار تاریخ و زمان فعلی سیستم را می‌گیرد.

🔹 نکات مهم

  • DEFAULT فقط زمانی اعمال می‌شود که مقداری برای آن ستون درج نشود.

  • مقدار NULL به‌صورت دستی وارد شود، مقدار پیش‌فرض جایگزین نمی‌شود.

  • در SQL Server از ()GETDATE برای زمان فعلی استفاده می‌شود؛ در MySQL از ()NOW.

  • DEFAULT باعث کاهش خطا و ساده‌تر شدن درج داده‌ها می‌شود.