jika Anda ingin waktu default harus diubah menjadi timestamp dalam tipe data Anda,
datetime akan menampilkan input pengguna dari tabel...
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html
http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
Sebagai DEFAULT CURRENT_TIMESTAMP pertanyaan sudah dijawab, saya hanya akan menanggapi ketidaksesuaian sensitivitas huruf besar-kecil pada nama tabel antara windows dan linux.
Di Windows, sistem file secara default tidak peka huruf besar-kecil.
Namun di Linux dan *NIX lainnya seperti Sistem Operasi, mereka peka terhadap huruf besar-kecil secara default.
Alasan mengapa Anda mendapatkan ketidakcocokan dalam perilaku di sini adalah sistem file, karena setiap tabel dibuat sebagai file terpisah dan sistem file menangani sensitivitas huruf besar-kecil untuk Anda.
MySQL memiliki parameter untuk mengesampingkan perilaku ini:
Misalnya, di Unix, Anda dapat memiliki dua tabel berbeda bernama
my_tabledanMY_TABLE, tetapi pada Windows kedua nama ini dianggap identik. Untuk menghindari masalah transfer data yang timbul dari huruf huruf nama database atau tabel, Anda memiliki dua opsi:
Gunakan
lower_case_table_names=1pada semua sistem. Kerugian utama dengan ini adalah ketika Anda menggunakanSHOW TABLESatauSHOW DATABASES, Anda tidak melihat nama dalam huruf aslinya.Gunakan
lower_case_table_names=0di Unix danlower_case_table_names=2di Windows. Ini mempertahankan huruf nama database dan tabel. Kerugiannya adalah Anda harus memastikan bahwa pernyataan Anda selalu merujuk ke nama database dan tabel Anda dengan huruf huruf yang benar di Windows. Jika Anda mentransfer pernyataan Anda ke Unix, di mana huruf itu penting, pernyataan itu tidak berfungsi jika huruf itu salah.
Pengecualian: Jika Anda menggunakan tabel InnoDB dan mencoba menghindari masalah transfer data ini, Anda harus menyetellower_case_table_names=1pada semua platform untuk memaksa nama dikonversi menjadi huruf kecil.[...]
Untuk menghindari masalah yang disebabkan oleh perbedaan tersebut,yang terbaik adalah mengadopsi konvensi yang konsisten, seperti selalu membuat dan merujuk ke database dan tabel menggunakan nama huruf kecil . Konvensi ini direkomendasikan untuk portabilitas maksimum dan kemudahan penggunaan.
Ini adalah kutipan dari manual MySQL tentang sensitivitas huruf pengidentifikasi
DEFAULT CURRENT_TIMESTAMP dukungan untuk DATETIME (tipe data) telah ditambahkan di MySQL 5.6.
Di versi 5.5 dan sebelumnya, ini hanya berlaku untuk TIMESTAMP kolom (tipe data).
Dimungkinkan untuk menggunakan BEFORE INSERT trigger di 5.5 untuk menetapkan nilai default ke kolom.
DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
Sensitivitas huruf besar (kueri terhadap nilai yang disimpan dalam kolom) disebabkan oleh collation digunakan untuk kolom. Kumpulan yang diakhiri dengan _ci tidak peka huruf besar-kecil. Misalnya latin1_swedish_ci tidak peka huruf besar/kecil, tetapi latin1_general_cs peka huruf besar/kecil.
Keluaran dari SHOW CREATE TABLE foo akan menampilkan kumpulan karakter dan susunan untuk kolom tipe karakter. Ini ditentukan pada tingkat per kolom. "Default" yang ditentukan di tingkat tabel berlaku untuk kolom baru yang ditambahkan ke tabel saat definisi kolom baru tidak menentukan rangkaian karakter.
PEMBARUAN
Kaii menunjukkan bahwa jawaban saya tentang "sensitivitas huruf" berkaitan dengan nilai yang disimpan dalam kolom, dan apakah kueri akan mengembalikan nilai dari kolom yang berisi nilai "New" akan dikembalikan dengan predikat seperti "t.col = 'new'" .
Lihat jawaban Kaii tentang pengidentifikasi (mis. nama tabel) ditangani secara berbeda (secara default) di Windows daripada di Linux.