sql语句/表达式所需的帮助

时间:2017-07-26 17:14:24

标签: sql

sql语句等新手,我在linux机器上使用squirrelSQL做了什么问题

我创建了一个表并使用了以下sql语句: -

INSERT INTO FIRSTTABLE VALUES
    (11,'TEN','STEVE'),(21,'TWENTY','JO'),(31,'THIRTY','KIDS')

ALTER TABLE FIRSTTABLE
ADD SURNAME VARCHAR(15);

这很好但是当我尝试将数据/值插入到姓氏行时我一直遇到错误,我使用的SQL语句是: -

 INSERT INTO FIRSTTABLE (SURNAME)
     VALUES ('THOMAS'),('THOMAS'),('THOMAS'),('THOMAS');

此特定语句返回以下错误: -

  

错误:列'ID'无法接受NULL值。   SQLState:23502   ErrorCode:30000

我只希望将数据/值添加到surname列中,在使用alter table语句创建新列之后,我尝试了许多不同的组合,包括在上面的INSERT语句之前使用SELECT语句,这也会给出错误任何指导将不胜感激,

3 个答案:

答案 0 :(得分:1)

您正在插入Surname,而不会为其他字段指定值。您收到此错误消息,因为ID为空,不应该。

了解INSERT创建新行。如果您想修改现有行,请使用UPDATE

在这种情况下,您可以使用UPDATE FIRSTTABLE SET SURNAME='THOMAS';  省略WHERE子句会影响表中的所有字段。

希望它对你的学习过程有所帮助,祝你好运!

答案 1 :(得分:0)

方法错了,你需要:

private List<Key> _pressed = new List<Key>();

private void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (_pressed.Contains(e.Key)) return;
        _pressed.Add(e.Key);

    if (Keyboard.Modifiers == ModifierKeys.Control && _pressed.Contains(Key.C) && _pressed.Contains(Key.L))
    {
        _allowClose = true;
        this.Close();
        e.Handled = true;
    }            
}

private void Window_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
   _pressed.Remove(e.Key);
}

答案 2 :(得分:0)

插入将向表中添加新行。因此,您需要使用

更新一行

UPDATE FIRSTTABLE SET SURNAME="THOMAS" WHERE ID=11