Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membuat pertanyaan dan menetapkan sql_mode dalam MySQL

Bagaimana untuk membuat pertanyaan dan menetapkan sql_mode dalam MySQL

青灯夜游
青灯夜游ke hadapan
2021-09-07 19:24:162823semak imbas

Bagaimana untuk membuat pertanyaan dan menetapkan sql_mode dalam

MySQL? Artikel berikut akan memperkenalkan kepada anda kaedah pertanyaan dan tetapan sql_mode dalam MySQL.

Bagaimana untuk membuat pertanyaan dan menetapkan sql_mode dalam MySQL

Pertanyaan dan tetapan mod sql_SQL

1, laksanakan SQL untuk melihat [Cadangan berkaitan: tutorial video mysql]

select @@session.sql_mode;

Peringkat global: Lihat

select @@global.sql_mode;

2, ubah suai

set @@session.sql_mode='xx_mode'set session sql_mode='xx_mode'

Peringkat global: Ubah suai

set global sql_mode='xx_mode';set @@global.sql_mode='xx_mode';

Sesi boleh ditinggalkan, sesi lalai hanya sah untuk sesi semasa
Pengubahsuaian global memerlukan kebenaran lanjutan dan hanya akan berkuat kuasa untuk sambungan seterusnya , tidak menjejaskan sesi semasa, dan akan menjadi tidak sah selepas MySQL dimulakan semula, kerana MySQL akan membaca semula nilai yang sepadan dalam fail konfigurasi apabila ia dimulakan semula. Jika ia perlu kekal, anda perlu mengubah suai nilai dalam fail fail konfigurasi.

vi /etc/my.cnf
[mysqld]sql-mode = "xx_mode"

Simpan dan keluar, mulakan semula pelayan, dan ia akan berkuat kuasa secara kekal

Nilai biasa sql_mode adalah seperti berikut:

NO_AUTO_VALUE_ON_ZERO

Nilai ini mempengaruhi sisipan lajur yang meningkat secara automatik. Di bawah tetapan lalai, memasukkan 0 atau NULL mewakili penjanaan nilai peningkatan automatik seterusnya. Pilihan ini berguna jika pengguna ingin memasukkan nilai 0 dan lajur meningkat secara automatik.

STRICT_TRANS_TABLES

Dalam mod ini, jika nilai tidak boleh dimasukkan ke dalam jadual transaksi, operasi semasa akan terganggu dan tiada sekatan ke atas bukan transaksi jadual

TIADA_ZERO_IN_DATE

Dalam mod ketat, tarikh atau bulan tidak dibenarkan selagi bulan atau hari tarikh mengandungi nilai 0, ralat akan dilaporkan, tetapi '

0000- Kecuali 00-00

'

NO_ZERO_DATE

Menetapkan nilai ini, pangkalan data mysql tidak membenarkan sisipan tarikh sifar, dan memasukkan tarikh sifar akan menimbulkan ralat dan bukannya amaran. Jika mana-mana tahun, bulan dan hari bukan 0, ia memenuhi keperluan Hanya '0000-00-00

' akan melaporkan ralat

ERROR_FOR_pISION_BY_ZERO

<.>

dalam INSERT Atau semasa proses KEMASKINI, jika data dibahagikan dengan sifar, ralat dijana dan bukannya amaran. Jika mod tidak diberikan, MySQL mengembalikan NULL apabila data dibahagikan dengan sifar set jadual num = 5 / 0; ralat akan dilaporkan selepas menetapkan mod, dan nilai num adalah batal

NO_AUTO_CREATE_USER

Larang GERAN daripada mencipta pengguna dengan kata laluan kosong


NO_ENGINE_SUBSTITUTION

Jika enjin storan yang diperlukan dilumpuhkan atau tidak disusun, maka ralat akan berlaku. Apabila nilai ini tidak ditetapkan, enjin storan lalai digunakan dan pengecualian dilemparkan

PIPES_AS_CONCAT

Anggap "||" sebagai operator penggabungan rentetan operator OR, ini adalah sama dengan pangkalan data Oracle, dan serupa dengan fungsi penyambungan rentetan Concat

ANSI_QUOTES

Selepas mendayakan ANSI_QUOTES, anda tidak boleh menggunakan Sebut Harga berganda tandakan untuk memetik rentetan kerana ia ditafsirkan sebagai pengecam Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:

Video Pengaturcaraan

! !

Atas ialah kandungan terperinci Bagaimana untuk membuat pertanyaan dan menetapkan sql_mode dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam