Pertanyaan masukkan nilai kosong, bukan NULL di bidang angka


Saya mohon bantuan Anda.

Kami memiliki aplikasi PHP yang berjalan di MySQL, dan kami perlu menggunakan PostgreSQL untuk pelanggan baru.

masalahnya adalah ketika kita memasukkan string kosong di bidang tipe numerik, kita mendapatkan kesalahan.

Saya pikir kita harus benar-benar menggunakan NULL daripada string kosong.

Namun kami ingin menghindari harus mengode ulang semua kode SQL dari aplikasi kami, pertanyaan saya adalah apakah mungkin dalam struktur tabel (atau di tempat lain) untuk memastikan bahwa kolom numerik kami menerima nilai kosong? atau mengubahnya menjadi NULL?

Dalam dokumentasi saya telah melihat bahwa adalah mungkin untuk menentukan jenis Anda sendiri, mungkin misalnya untuk membuat tipe berdasarkan numerik dan memastikan bahwa ia menerima nilai kosong? Jika ya bagaimana caranya? Saya tidak menemukan solusi

Terima kasih


4
2017-08-31 12:08


asal


Jawaban:


masalahnya adalah ketika kita memasukkan   string kosong dalam bidang tipe   numerik, kami mendapatkan kesalahan.

Itu benar, string bukanlah angka. Bahkan tidak ada string kosong.

Saya pikir kita harus benar-benar menggunakan NULL   bukan string kosong.

Itu benar, SQL Anda saat ini salah. Jika konfigurasi MySQL Anda akan menggunakan SQL_MODE yang lebih baik, pertanyaan Anda juga akan gagal di MySQL. Perbaiki kode Anda, sejauh ini merupakan opsi terbaik yang Anda miliki.

Meretas di sekitar dengan membuat tipe data tiruan hanyalah sebuah peretasan, itu bukan solusi untuk SQL yang buruk. Masalahnya adalah SQL Anda, bukan database Anda.


5
2017-08-31 12:28