سؤال

هل من الممكن تحديد عمود الطابع الزمني في جدول MySQL والذي سيتم تحديثه تلقائيًا في كل مرة يتم فيها تعديل حقل في نفس الصف؟من الناحية المثالية، يجب أن يتم تعيين هذا العمود مبدئيًا على وقت إدراج الصف.

هتافات ، دون

هل كانت مفيدة؟

المحلول

هذه هي الوظيفة الافتراضية لل الطابع الزمني نوع العمود.ومع ذلك، لاحظ أن تنسيق هذا النوع هو yyyymmddhhmmss (جميع الأرقام، بدون نقطتين أو أي فاصل آخر).

يحرر: التعليق أعلاه حول التنسيق ينطبق فقط على إصدارات MySQL <4.1...الإصدارات اللاحقة بتنسيقها مثل التاريخ والوقت

نصائح أخرى

ويمكنك استخدام عمود الطابع الزمني كما ذكر غيرها من الملصقات. هنا هو SQL يمكنك استخدامها لإضافة عمود في:

ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

وهذا يضيف عمود يسمى 'LastUpdated ل' مع القيمة الافتراضية التاريخ / الوقت الحالي. عندما يتم تحديث هذا السجل (يتيح القول بعد 5 دقائق) وأن الطابع الزمني تلقائيا إلى الوقت الحالي.

وهذا هو ما كنت قد لاحظت (الخلية 5.7.11) -

والعمود الطابع الزمني الأول في الجدول يحصل الطابع الزمني الحالي كقيمة افتراضية. لذا، إذا كنت قيام INSERT أو UPDATE دون توريد قيمة، فإن عمود الحصول على الطابع الزمني الحالي.

ويجب أن يكون أي أعمدة الطابع الزمني لاحقة تحدد قيمة افتراضية صراحة. إذا كان لديك عمودين الطابع الزمني، وإذا لم تقم بتحديد قيمة افتراضية للعمود الثاني، سوف تحصل هذا الخطأ أثناء محاولة إنشاء الجدول -

وERROR 1067 (42000): القيمة الافتراضية غير صالحة ل 'COLUMN_NAME'

ويتم تعيين الطابع الزمني الخلية مع إنشاء أو تحديث الوقت فقط إذا تم تعيين القيمة الافتراضية الخاصة بهم كما هو. ALTER TABLE some_table ADD when TIMESTAMP DEFAULT CURRENT_TIMESTAMP.
إلا أنها تعمل تماما مثل حقل التاريخ والوقت، إلا أنه بالنسبة إلى 1970/01/01 UTC، لذلك فمن الناحية المطلقة في المرة ليس اعتمادا على توقيت معين كما هو التاريخ والوقت.

وIIRC، يتم تعيين العمود الأول في جدول نوع الطابع الزمني عندما يتم إنشاء سجل ولا يمكن تغييرها. تم تعيين 2nd العمود من نوع الطابع الزمني كلما يتم تحديث سجل. أو العكس بالعكس.

وأنا لم تفعل الكثير من الخلية العمل، لذلك عليك أن ترغب في التحقق من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top