mysql多个TimeStamp设置_MySQL
bitsCN.com
timestamp设置默认值是Default CURRENT_TIMESTAMP
timestamp设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP
但是由于
一个表中至多只能有一个字段设置CURRENT_TIMESTAMP
两行设置DEFAULT CURRENT_TIMESTAMP是不行的。
还有一点要注意
CREATE TABLE `device` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid', `createtime` TIMESTAMP NOT NULL COMMENT '创建时间', `updatetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`id`), UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
像这个设置也是不行的。
原因是mysql会默认为表中的第一个timestamp字段(且设置了NOT NULL)隐式设置DEFAULAT CURRENT_TIMESTAMP。所以说上例那样的设置实际上等同于设置了两个CURRENT_TIMESTAMP。
分析需求
一个表中,有两个字段,createtime和updatetime。
1 当insert的时候,sql两个字段都不设置,会设置为当前的时间
2 当update的时候,sql中两个字段都不设置,updatetime会变更为当前的时间
这样的需求是做不到的。因为你无法避免在两个字段上设置CURRENT_TIMESTAMP
解决办法有几个:
1 使用触发器。
当insert和update的时候触发器触发时间设置。
网上有人使用这种方法。当然不怀疑这个方法的可用性。但是对于实际的场景来说,无疑是为了解决小问题,增加了复杂性。
2 将第一个timestamp的default设置为0
表结构如下:
CREATE TABLE `device` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid', `createtime` TIMESTAMP NOT NULL DEFAULT 0 COMMENT '创建时间', `updatetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`id`), UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
这样的话,你需要的插入和更新操作变为:
insert into device set toid=11,createtime=null;
update device set toid=22 where id=1;
这里注意的是插入操作的createtime必须设置为null!!
虽然我也觉得这种方法很不爽,但是这样只需要稍微修改insert操作就能为sql语句减负,感觉上还是值得的。这也确实是修改数据库最小又能保证需求的方法了。当然这个方法也能和1方法同时使用,就能起到减少触发器编写数量的效果了。
3 老老实实在sql语句中使用时间戳。
这个是最多人也是最常选择的
表结构上不做过多的设计:
CREATE TABLE `device` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid', `createtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updatetime` TIMESTAMP NOT NULL COMMENT '最后更新时间', PRIMARY KEY (`id`), UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
这样你就需要在插入和update的操作的时候写入具体的时间戳。
insert device set toid=11,createtime=’2012-11-2 10:10:10’,updatetime=’2012-11-2 10:10:10’
update device set toid=22,updatetime=’2012-11-2 10:10:10’ where id=1
其实反观想想,这样做的好处也有一个:current_timestamp是mysql特有的,当数据库从mysql转移到其他数据库的时候,业务逻辑代码是不用修改的。
ps:这三种方法的取舍就完全看你自己的考虑了。顺便说一下,最后,我还是选择第三种方法。
bitsCN.com
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tajuk: Pernyataan dan contoh kod khusus untuk melihat data jadual dalam MySQL MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas dalam aplikasi semua saiz. Dalam MySQL, melihat data jadual adalah operasi yang sangat asas Berikut akan memperkenalkan cara melaksanakan operasi ini melalui pernyataan dan contoh kod tertentu. Pertama, kami akan memperkenalkan pernyataan dan contoh kod khusus untuk melihat data jadual melalui alat baris arahan MySQL. Katakan kita mempunyai jadual bernama "pekerja", berikut ialah pas

NEARProtocol: Platform blockchain yang boleh skala dan mesra pengguna NEARProtocol ialah platform blockchain yang menggunakan teknologi sharding yang direka untuk menangani cabaran yang dihadapi oleh teknologi blockchain dari segi kebolehskalaan, kemesraan pengguna dan keselamatan. Ia menyediakan pemaju dengan platform yang cekap dan mesra pengguna yang membolehkan mereka membina dan menggunakan aplikasi terdesentralisasi (dApps) dengan mudah. NEARProtocol direka untuk mengurangkan halangan kepada pembangunan blokchain sambil menyediakan tahap kecekapan dan keselamatan yang tinggi. Dengan mengguna pakai teknologi sharding, NEARProtocol boleh mengendalikan transaksi berskala besar dengan lebih baik dan menyediakan masa pengesahan transaksi yang lebih pantas kepada pengguna. Secara keseluruhan, NEARProtocol direka untuk menyediakan

Berapa banyak pin kabel papan induk Antec 650w Kabel kuasa papan induk bekalan kuasa Antec 650W biasanya 24 pin, yang merupakan antara muka kuasa terbesar pada papan induk. Fungsinya adalah untuk menyambungkan papan induk dan bekalan kuasa untuk membekalkan kuasa kepada papan induk dan komponen sistem yang lain. Selain itu, bekalan kuasa Antec 650W juga mungkin termasuk jenis antara muka kuasa lain, seperti CPU8pin, PCIe6+2pin, dsb., untuk menyambungkan komponen lain seperti CPU dan kad grafik bebas. Tutorial penghalaan papan induk Penghalaan papan induk ialah proses penyambungan litar antara pelbagai komponen elektronik semasa mereka bentuk papan induk. Dalam proses ini, faktor seperti kestabilan litar, kelajuan penghantaran isyarat dan ketepatan perlu dipertimbangkan. Apabila penghalaan pendawaian mengikut rajah litar, beri perhatian kepada susun atur dan pilih lebar dan jarak talian yang sesuai untuk mengelakkan

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang menyokong operasi menamakan semula jadual. Biasanya, menamakan semula jadual membawa risiko tertentu, jadi anda harus berhati-hati apabila melakukan operasi ini. Dalam artikel ini, kami akan meneroka cara melaksanakan penyataan jadual nama semula dalam MySQL dan memberikan contoh kod terperinci. Dalam MySQL, anda boleh menggunakan pernyataan ALTERTABLE untuk menamakan semula jadual. Berikut ialah sintaks asas pernyataan nama semula ALTERTABLE: ALTERTABLEo

Dalam pangkalan data Oracle, menetapkan kebenaran baca sahaja pada jadual adalah operasi yang sangat penting, yang boleh melindungi keselamatan data dan mencegah salah operasi. Berikut akan memperkenalkan cara untuk menetapkan kebenaran baca sahaja pada jadual dalam pangkalan data Oracle dan memberikan contoh kod khusus. Pertama, kita perlu memahami bahawa dalam pangkalan data Oracle, pengguna mendapatkan kebenaran pada jadual melalui kebenaran. Kebenaran jadual termasuk operasi PILIH (pertanyaan), INSERT (masukkan), KEMASKINI (kemas kini) dan PADAM (padam). Di sini kami akan memperkenalkan

Gunakan MySQL untuk mencipta jadual sistem pengesyoran untuk melaksanakan fungsi sistem pengesyoran Sistem pengesyoran ialah sistem yang digunakan untuk mengesyorkan kandungan diperibadikan kepada pengguna berdasarkan pilihan dan gelagat mereka. Dalam sistem pengesyoran, pangkalan data ialah komponen utama, yang menyimpan maklumat seperti data pengguna, data item dan data interaksi item pengguna. Sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, MySQL boleh digunakan untuk mencipta jadual sistem pengesyoran dan melaksanakan fungsi sistem pengesyoran. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk mencipta jadual sistem pengesyoran dan menunjukkannya melalui contoh kod.

Sarung komputer Microsoft ialah sarung yang digunakan untuk melindungi komputer anda Ia bukan sahaja memberikan perlindungan tambahan tetapi juga menambah kesan hiasan. Bagi mereka yang ingin menambah beberapa elemen diperibadikan pada komputer mereka, sarung komputer Microsoft adalah pilihan yang ideal. Jadual Konfigurasi Disyorkan Kes Komputer Microsoft ialah jadual terperinci yang menyenaraikan konfigurasi yang disyorkan untuk model dan spesifikasi yang berbeza bagi sarung komputer Microsoft. Kami akan memperkenalkan jadual konfigurasi yang disyorkan bagi sarung komputer Microsoft secara terperinci dan menerangkan beberapa aspek mengenainya 1. Model yang boleh digunakan Dalam jadual konfigurasi yang disyorkan, perkara pertama yang perlu dipertimbangkan ialah model yang boleh digunakan bagi sarung komputer Microsoft. Model yang berbeza bagi sarung komputer Microsoft mungkin mempunyai saiz dan bentuk yang berbeza, jadi anda perlu memilih sarung yang sesuai mengikut model komputer anda. Jadual konfigurasi menyenaraikan mikropengawal yang boleh digunakan untuk model yang berbeza.

MySQL mencipta jadual hak pengguna untuk melaksanakan fungsi pengurusan hak pengguna MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang menyediakan fungsi pengurusan hak pengguna yang berkuasa. Dalam persekitaran pangkalan data berbilang pengguna, adalah sangat penting untuk mengurus kebenaran pengguna dengan betul. Artikel ini akan memperkenalkan cara melaksanakan fungsi pengurusan hak pengguna dengan mencipta jadual hak pengguna dan menggambarkannya dengan contoh kod. 1. Cipta jadual kebenaran Pertama, kita perlu mencipta jadual kebenaran untuk menyimpan maklumat kebenaran pengguna. Medan jadual kebenaran termasuk ID pengguna (pengguna_
