Ich versuche, einen Wert in eine Tabelle in MySQL einzufügen, kann ihn aber nicht zum Laufen bringen. Ich verwende die folgende Abfrage:
INSERT into articulo values (32,'Sala',CAST(',000.45999' AS DECIMAL(10,5)),40.2399,200.2399,3,'kid 3');
MySQL zeigt den folgenden Fehler an:
1 row(s) affected, 1 warning(s): 1292 Truncated incorrect DECIMAL value: ',000.45999'
Die Tabelle zeigt Folgendes:
Natürlich habe ich die Tabelle „articulo“ vorher erstellt:
CREATE Table articulo ( id_art int NOT NULL, nom_art varchar (25) DEFAULT 'XXXXXXXXXXXXX', prec_art decimal (10,5) DEFAULT 0.000, peso_art decimal (10,5), existencia float, color_art int, CONSTRAINT chk_color1 CHECK (color_art between 0 and 20), um_art varchar (10) DEFAULT 'DEF_PZA', primary key (id_art) );
Ich habe viele Beispiele zum Thema Casting gesehen, aber alle verwenden die Casting-Funktion unter „Auswählen“. Stellungnahme.
Irgendeine Idee, was ich tun kann, um die gewünschte Aktion auszuführen?
Ich möchte 10.000,45999 $ als Dezimalwert in einer Tabelle speichern. Dies wird 10000,45999 sein
Vielen Dank für Ihre Unterstützung!
您不能在该查询中的值中使用逗号或美元符号。
您可以将查询重写为:
但是,如果您的列已明确定义为
DECIMAL(10,5)
,则无需将值转换为小数。简单地写:
您可以通过固定数字来插入值。对于您的情况,这应该有效:
严格来说,
cast()
不是必需的,但我喜欢避免隐式转换——这些可能会导致难以检测的问题。请注意:最好在
insert
语句中包含列列表。