MYSQL INSERT - “0行插入”。有什么建议为什么?

时间:2013-05-04 15:51:46

标签: mysql

INSERT INTO fields (id_region, id_fields_info, subsidy_dka, id_rents_dka, type_uses, id_rented_from, id_categories, id_farmer, id_season) 
SELECT 
    regions.id,
        fields_info.id ,
        120,
    rents_dka.rent_dka, 
        "собствена",
    rented_froms.id, 
        categories.id_category, 
        farmers.id, 
        seasons.id

FROM regions, fields_info, rents_dka, rented_froms, categories, farmers,
    seasons
WHERE 
        region = "Азмък" AND
        field_num = 2222 AND
        rent_dka = 60 AND
        name = "Десислав" AND
        id_category = 3 AND
        name = "Десислав" AND
        season = "2012-2013"

所以我有这些表:

regions,
fields_info,
rents_dka, 
rented_froms, 
categories, 
farmers, 
seasons

他们充满了一些数据 我已经创建了一个表单,其中用户使用这些表中的数据填充字段,我已经提到过,当单击提交按钮时,我想在MYSQL中填写表格FIELDS,其中ID来自数据,用户已进入。

2 个答案:

答案 0 :(得分:0)

发现问题,我将按照以下步骤进行:

  • 执行没有西里尔文的插入
  • 删除所有和
  • 使用默认值
  • 进行默认插入

如果“插入0行”,则意味着语法正确,但where子句无法找到任何匹配的条目。我怀疑问题是与西里尔文的AND。删除AND,直到查询找到一些条目

答案 1 :(得分:-1)

当我尝试插入具有唯一列的表并且我的 SQL 中包含关键字 IGNORE 时,我遇到了这种情况:

查询:

INSERT IGNORE INTO users SET `user_id` = 7321, `name`= 'test_name', `phone` = '+188888888';

如果查询没有 IGNORE,它会抛出一个错误(因为 user_id 列被设置为唯一的并且我已经有一行具有相同的 user_id)但由于IGNORE 关键字,它只是忽略查询,因此插入 0 行。

注意:我知道所提出的问题在查询中没有 IGNORE 键,但可能对某人有所帮助。