Jadual Kandungan
一个表中至多只能有一个字段设置CURRENT_TIMESTAMP
分析需求
1 使用触发器。
2 将第一个timestamp的default设置为0
3 老老实实在sql语句中使用时间戳。
Rumah pangkalan data tutorial mysql mysql多个TimeStamp设置_MySQL

mysql多个TimeStamp设置_MySQL

Jun 01, 2016 pm 01:38 PM
ya permukaan

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;
Salin selepas log masuk

像这个设置也是不行的。

原因是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;
Salin selepas log masuk

这样的话,你需要的插入和更新操作变为:

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;
Salin selepas log masuk

这样你就需要在插入和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
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan pernyataan untuk melihat data jadual dalam MySQL? Bagaimana untuk melaksanakan pernyataan untuk melihat data jadual dalam MySQL? Nov 08, 2023 pm 01:40 PM

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

Apakah itu NEAR Protocol Coin? Apakah ciri-ciri syiling NEAR Protocol? Apakah itu NEAR Protocol Coin? Apakah ciri-ciri syiling NEAR Protocol? Mar 04, 2024 pm 11:20 PM

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

Berapakah bilangan pin dalam antara muka kabel papan induk bekalan kuasa Antec 650? (Rajah pendawaian bekalan kuasa Antec 650) Berapakah bilangan pin dalam antara muka kabel papan induk bekalan kuasa Antec 650? (Rajah pendawaian bekalan kuasa Antec 650) Jan 03, 2024 am 10:46 AM

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

Bagaimana untuk melaksanakan pernyataan menamakan semula jadual dalam MySQL? Bagaimana untuk melaksanakan pernyataan menamakan semula jadual dalam MySQL? Nov 08, 2023 pm 12:11 PM

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

Bagaimana untuk menetapkan kebenaran baca sahaja pada jadual dalam pangkalan data Oracle? Bagaimana untuk menetapkan kebenaran baca sahaja pada jadual dalam pangkalan data Oracle? Mar 06, 2024 pm 03:03 PM

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 Gunakan MySQL untuk mencipta jadual sistem pengesyoran untuk melaksanakan fungsi sistem pengesyoran Jul 02, 2023 am 10:01 AM

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.

Senarai konfigurasi disyorkan kotak komputer Microsoft—Senarai konfigurasi disyorkan kotak komputer Microsoft Senarai konfigurasi disyorkan kotak komputer Microsoft—Senarai konfigurasi disyorkan kotak komputer Microsoft Dec 28, 2023 am 11:36 AM

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 mencipta jadual hak pengguna untuk melaksanakan fungsi pengurusan hak pengguna Jul 02, 2023 pm 06:57 PM

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_

See all articles