アップグレード後、私のmysqlデータベースに問題があります。ログには次の情報が表示されます。MySQLのアップグレード後にカラムにNULL値を挿入できないのはなぜですか?
PHP Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'kod_tecdoc' cannot be null in.
テーブルに行を挿入または更新しようとしました。 アップグレードがうまくいく前に私は驚いています。私のテーブルフィールドは、値を空にすることができます。私は解決策があるかもしれないことを知っています
if ($kod_tecdoc == null) $kod_tecdoc = '';
しかし問題は解決しません。たぶんいくつかの設定はmysqlで変更する必要がありますか?
私のMySQLバージョン:
+-----------------+
| @@version |
+-----------------+
| 5.7.12-0ubuntu1 |
+-----------------+
真実ではない表構造
CREATE TABLE `Realizacje` (
`id` int(11) NOT NULL,
`tekst_allegro` text NOT NULL,
`typy_felg` int(11) NOT NULL,
`nazwa` varchar(200) DEFAULT NULL,
`nazwa_allegro` varchar(255) NOT NULL,
`producent` int(11) NOT NULL DEFAULT '0',
`cena_netto_gielda` decimal(12,2) NOT NULL,
`cena_brutto_gielda` decimal(12,2) NOT NULL,
`cena_netto_hurt` decimal(12,2) NOT NULL,
`cena_brutto_hurt` decimal(12,2) NOT NULL,
`cena_netto_warsztat` decimal(12,2) NOT NULL,
`cena_brutto_warsztat` decimal(12,2) NOT NULL,
`vat` int(11) NOT NULL,
`kod_produkt` varchar(255) NOT NULL,
`on_pojazdy` varchar(1) NOT NULL DEFAULT '0',
`on_zamienniki` varchar(1) NOT NULL DEFAULT '0',
`on_kategoria` varchar(1) NOT NULL DEFAULT '0',
`kod` varchar(255) NOT NULL,
`kod_dostawcy` varchar(50) NOT NULL,
`kod_tecdoc` varchar(50) NOT NULL,
`widoczny` varchar(2) NOT NULL DEFAULT '1',
`dostepny` varchar(2) NOT NULL DEFAULT '1',
`dostepnosc` int(11) NOT NULL,
`promocja` varchar(2) NOT NULL DEFAULT '0',
`promocja_glowna` tinyint(1) NOT NULL DEFAULT '0',
`nowosc` varchar(2) NOT NULL DEFAULT '0',
`nowosc_glowna` tinyint(1) NOT NULL DEFAULT '1',
`glowna` varchar(1) NOT NULL,
`bestseller` varchar(1) DEFAULT '0',
`bestseller_glowna` tinyint(1) NOT NULL DEFAULT '0',
`polecamy` varchar(1) NOT NULL DEFAULT '0',
`polecamy_glowna` varchar(1) NOT NULL DEFAULT '0',
`skrot` text NOT NULL,
`tekst` text,
`odwiedziny` bigint(20) DEFAULT '0',
`lang` varchar(5) NOT NULL DEFAULT 'pl',
`status` int(11) DEFAULT '0',
`link` varchar(255) DEFAULT NULL,
`route_id` int(11) DEFAULT NULL,
`miary` int(11) NOT NULL,
`rabat` decimal(12,2) NOT NULL,
`narzut` varchar(1) DEFAULT '0',
`aukcje` varchar(255) NOT NULL,
`stan` decimal(12,2) NOT NULL DEFAULT '1.00',
`aktualizowany` varchar(1) NOT NULL DEFAULT '1',
`dostawanatelefon` varchar(1) NOT NULL,
`dodano` varchar(50) DEFAULT NULL,
`aktualizacja` varchar(50) DEFAULT NULL,
`kosztyAllegro` text NOT NULL,
`allegroCennik` int(11) NOT NULL,
`trybCena` varchar(255) NOT NULL,
`allegro_ok` varchar(1) NOT NULL DEFAULT '0',
`ogranicz_ilosc_znakow` int(11) NOT NULL DEFAULT '50'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
このテーブルのスキーマを表示 – RiggsFolly
空の値がnullではありません。フィールドをNULL可能に変更します。 – frz3993
私はサーバ上のベースのコピーであるローカルデータベースに取り組んでいます。サーバー上で良い作品。私はアップグレード後に何が起こったのか不思議です。私は私のプロジェクトに130テーブルあります。すべてのファイルを変更すると非常に長くなります。 – Tomasz