কেবলমাত্র নতুন সারিগুলির জন্য ডিফল্ট NOW () এর সাথে টাইমস্ট্যাম্প কলাম যুক্ত করুন


111

আমার কাছে একটি টেবিল রয়েছে যাতে কয়েক হাজার সারি রয়েছে। যেহেতু প্রথমদিকে তৈরি_এ কলাম দিয়ে টেবিলটি তৈরি করা হয়নি, তাই তাদের তৈরির টাইমস্ট্যাম্প পাওয়ার কোনও উপায় নেই। ভবিষ্যতের সারিগুলির টাইমস্ট্যাম্পগুলি পেতে শুরু করা যদিও এটি গুরুত্বপূর্ণ।

এখনই ডিফল্ট মান NOW () সহ আমি একটি টাইমস্ট্যাম্প কলাম যুক্ত করতে পারি যাতে এটি পূর্বের সারিগুলিতে কেবলমাত্র ভবিষ্যতের মানগুলিকেই জনপ্রিয় করে না?

যদি আমি ALTERকোয়েরিটি করি, এটি টাইমস্ট্যাম্পের সাহায্যে সমস্ত সারিটি জনপ্রিয় করে তোলে:

ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP DEFAULT NOW()

উত্তর:


157

আপনাকে ডিফল্টর সাথে কলামটি যুক্ত করতে হবে null, তারপরে ডিফল্টরূপে কলামটি পরিবর্তন করতে হবে now()

ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP;
ALTER TABLE mytable ALTER COLUMN created_at SET DEFAULT now();

43

আপনি পরিবর্তন টেবিলের সাথে ডিফল্ট নিয়ম যোগ করতে পারেন,

ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP DEFAULT NOW()

তারপরে তত্ক্ষণাত্ সমস্ত বিদ্যমান বিদ্যমান সারিগুলি বাতিল করতে হবে:

UPDATE mytable SET created_at = NULL

তারপরে এই পয়েন্ট থেকে DEFAULTকার্যকর হবে।


এটি নীতিগতভাবে ভাল, যদিও এটি এমন কোনও আপডেটের ওজন বহন করে যা আগুনের কারণ হতে পারে
ফিলিপ কুলিং

7
@ আর্টুর: ফিলিপ যে সমাধানটি উপস্থাপন করেছেন তা হ'ল উপায়। UPDATEপ্রয়োজন হয় না. আপনি যদি বিদ্যমান কলামে একটি কলাম ডিফল্ট যুক্ত করেন তবে ইতিমধ্যে বিদ্যমান সারিগুলি প্রভাবিত হবে না। ডিফল্টটি কেবলমাত্র পূরণ করা হয় যদি আপনি একই কমান্ডে কলাম এবং ডিফল্ট যুক্ত করেন।
এরউইন ব্র্যান্ডসটেটার

9

উদাহরণস্বরূপ, আমি usersনীচের হিসাবে পরিচিত একটি টেবিল তৈরি করব এবং একটি কলাম dateএকটি ডিফল্ট মান হিসাবে দেবNOW()

create table users_parent (
    user_id     varchar(50),
    full_name   varchar(240),
    login_id_1  varchar(50),
    date        timestamp NOT NULL DEFAULT NOW()
);

ধন্যবাদ


0

এর মতো কিছু চেষ্টা করে দেখুন: -

ALTER TABLE table_name ADD  CONSTRAINT [DF_table_name_Created] 
DEFAULT (getdate()) FOR [created_at];

table_nameআপনার টেবিলের নাম দিয়ে প্রতিস্থাপন করা।


এই জাতীয় নিয়ন্ত্রণের সুবিধা কী?
রুব্বো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.