mysql Fehler 1364 Feld hat keine Standardwerte
Meine Tabelle sieht wie
create table try ( name varchar(8), CREATED_BY varchar(40) not null);
und dann habe ich noch einen trigger für die automatische Auffüllen der CREATED_BY-Feld
create trigger autoPopulateAtInsert BEFORE INSERT on try for each row set new.CREATED_BY=user();
Wenn ich ein insert mit
insert into try (name) values ('abc');
den Eintrag in der Tabelle, aber ich bekomme immer noch die Fehlermeldung
Field 'CREATED_BY' doesn't have a default value Error no 1364
Gibt es eine Möglichkeit zu unterdrücken, um diesen Fehler, ohne dass das Feld null-Werte zulässt UND ohne entfernen der triggfer? Sonst ist mein Ruhezustand sehen diese Ausnahmen ( auch wenn die Einsätze gemacht worden sind) und dann die Anwendung abstürzt.
InformationsquelleAutor der Frage kk1957 | 2013-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie einen Standardwert für
Created_By
(zB: leereVARCHAR
) und der Auslöser aktualisieren Sie den Wert sowieso.InformationsquelleAutor der Antwort KinSlayerUY
Dies ist verursacht durch die
STRICT_TRANS_TABLES
SQL-Modus definiert, in derDatei. Das entfernen dieser Einstellung und dem Neustart von MySQL sollte das problem lösen.
Sehen https://www.farbeyondcode.com/Solution-for-MariaDB-Field--xxx--doesn-t-have-a-default-value-5-2720.html
Wenn die Bearbeitung der Datei das Problem nicht beheben lässt, finden Sie unter http://dev.mysql.com/doc/refman/5.6/en/option-files.html für andere mögliche Standorte von config-Dateien.
InformationsquelleAutor der Antwort Phyxx
Öffnen Sie phpmyadmin und gehe zu "Mehr" Registerkarte, und wählen Sie 'Variablen' - Untermenü.
Blättern Sie nach unten zu finden, sql-Modus.
Bearbeiten-sql-Modus und entfernen "STRICT_TRANS_TABLES'
Speichern Sie es.
InformationsquelleAutor der Antwort Nilesh Dhangare
Wenn ich hatte das gleiche problem mit mysql5.6.20 Installation mit Homebrew, ich löste es, indem Sie in meine.cnf
Suchen Sie die Zeile, die sieht so aus:
Kommentar über line-out und Neustart mysql-server -
Fehler Weg!!!
InformationsquelleAutor der Antwort Kingsley Ijomah
In phpmyadmin, ausführen der folgenden:
In meinem Fall, bekomme ich die folgende:
Kopieren Sie das Ergebnis und entfernen
STRICT_TRANS_TABLES
. Führen Sie dann die folgenden:InformationsquelleAutor der Antwort Kamil
Seine Arbeit und getestet, Kopieren, Config File: /etc/mysql/my.cnf ODER /bin/mysql/my.ini
dann neu starten, MySQL
InformationsquelleAutor der Antwort Devraj Gupta
Vor jeder insert-Aktion fügte ich folgende Zeile, und mein Problem gelöst,
Ich bin mir nicht sicher, ob dies die beste Lösung,
InformationsquelleAutor der Antwort Vinith
Für Windows WampServer Benutzer:
WAMP > MySQL > meine.ini
Suche Datei für
sql-mode=""
Kommentieren Sie es.
InformationsquelleAutor der Antwort Andrew
Diese angezeigt werden verursacht durch eine langjährige (seit 2004) bug (#6295) in MySQLmit dem Titel
Es wurde angeblich behoben in version 5.7.1 von MySQL (Changelog, letzter Eintrag) in 2013, wodurch die MySQL-Verhalten, wie "pro SQL-standard" (EBD.).
InformationsquelleAutor der Antwort B98
Ändern Sie Ihre Abfrage, und fügen Sie "IGNORIEREN":
InformationsquelleAutor der Antwort Rohit Dhiman
ich die Felder nicht null und das problem ist gelöst, es aktualisiert, wenn eine information geboten, speichern Sie es nicht mehr zeigen, msqli Meldung, dass das Feld leer war, cus Sie nicht legen Wert auf, nun die Anwendung dieser Lösung kann die Arbeit auf einige Projekte, abhängig von Ihrer Projektstruktur.
InformationsquelleAutor der Antwort ExploreTech