MySQL INSERT INTO插入数据全部为0或NULL问题咨询
问题原因及解决办法
你插入的数据全是0或NULL,核心原因是用了default关键字——它会直接读取对应列的默认值,而你的表列没设置自定义默认值:
id_produit是自增主键,默认值是系统自动生成的自增数,所以插入后显示1,这部分是正常的nom_produit是字符串类型,未设置默认值时,MySQL会默认填充NULLprix是数值类型,未设置默认值时,MySQL会自动填充0(你的MySQL环境应该没开启严格模式,否则会报错)
正确插入方式
方式1:指定列插入(推荐,逻辑更清晰)
因为id_produit是自增主键,不需要手动赋值,直接插入其他列的值即可:
INSERT INTO produits (nom_produit, prix) VALUES ('笔记本电脑', 2999.99);
方式2:全列插入
如果要给所有列赋值,直接填写对应值就行,自增列传NULL会让系统自动生成自增值:
INSERT INTO produits VALUES (NULL, '无线鼠标', 59.9);
可选:设置自定义默认值
如果希望列有固定默认值,创建表时可以提前指定:
CREATE TABLE produits ( id_produit INT AUTO_INCREMENT PRIMARY KEY, nom_produit VARCHAR(50) DEFAULT '未命名商品', prix DECIMAL(10,2) DEFAULT 0.00 );
内容的提问来源于stack exchange,提问作者LucioleMaléfique
相关产品推荐
相关产品推荐

