SQL 查询成功,但未对表进行任何更改

时间:2021-03-06 22:31:38

标签: sql

我有以下问题。我运行此请求,该请求成功通过,但显示“0(受影响的行)”。简而言之,我想做什么。我正在尝试编写一个将元素添加到主表的查询,因为我已经链接了子表我正在尝试检索 ID 并将它们放入主表中

INSERT INTO Articles
       ([ID],
        [ArtName],
        [ArtType],
        [SerNo],
        [MACNo],
        [UserID],
        [Available],
        [CityID],
        [StoreID],
        [WorkplaceID],
        [ItemPrice],
        [IP_01],
        [IP_02],
        [Note])
SELECT 
       (SELECT max([ID])+1 FROM Articles),
        'HP',
        art.ID,
        '123',
        'А18Н31',
        u.ID,
        av.ID,
        c.ID ,
        s.ID,
        w.ID,
        '14.23',
        '192.168.11.3',
        '192.168.11.3',
        GetDate()
        FROM Articles a
   INNER JOIN Workplace w ON a.WorkplaceID = w.ID
   INNER JOIN Store s ON a.StoreID = s.ID
   INNER JOIN City c ON a.CityID = c.ID
   INNER JOIN Avaiable av ON a.Available = av.ID
   INNER JOIN Users u ON a.UserID = u.ID
   INNER JOIN ArtType art ON a.ArtType = art.ID 
   WHERE c.CityName LIKE '%Sofia%' AND art.ArtTypeName LIKE '%FirstType%' AND s.StoreName LIKE '%First%' AND av.AvaiableName LIKE '%yes%' AND u.UserName LIKE '%Valq%' AND w.WorkplaceName LIKE '%FWorkplace%'

1 个答案:

答案 0 :(得分:1)

评论太长了。

这表示“0 行受影响”,因为 items: jobFairData .map( (category) => DropdownMenuItem( child: Text( category.name, style: TextStyle(color: Theme.of(context).accentColor), ), value: category.id, ), ) .toList(), 不返回任何行。这可能是因为没有任何内容与 SELECT 匹配。这可能是因为 JOIN 子句过滤掉了所有行。没有样本数据,就无法判断。你必须自己调查。

也就是说,这非常可疑:

WHERE

这不是在表中增加 id 的正确方法。您应该使用 (SELECT max([ID])+1 FROM Articles), 列。或者可能默认为一个序列。无论哪种情况,插入行时都会自动设置 identity 的值。

另请注意,如果这会插入多行,则所有行都会得到相同的 id,这可能不是您想要的。

相关问题