2011-06-17 73 views
1

所以我一直与MySQL玩弄最近,并且是一个很长一段时间MSSQL用户我有点新的给它。MySQL的工作台插入语句不工作

我一直使用工作台生成一些INSERT语句,而我敢肯定,这是工作现在似乎遇到了问题之前。

当我在桌子上点右键,选择“发送到SQL编辑器”,然后选择“Insert语句”,它给了我一些SQL,看起来像:

INSERT INTO `mybigtable`.`itemcollection` 
(`ID`, 
`Type`, 
`Name`, 
`Description`, 
`SomeID`) 
VALUES 
(
{ID: 123}, 
{Type: 1}, 
{Name: '123'}, 
{Description: '1234'}, 
{SomeID: 1} 
); 

这总是在抛出一个错误ID值点,说它不理解:符号(记住我没有修改它生成的代码)。现在,我在MySQL上看到的每个插入语句(以及我通常习惯使用的插入语句)都没有名称前的名称,值中只包含值。如果我删除值之前的所有名称,插入语句工作正常。

因此,尽管它的确定,如果我建立我自己的INSERT语句,似乎奇怪的是,“发送到SQL编辑器”只是不工作。我在这里错过了一步吗?我的设置中是否有可能出错的东西?为什么它会在值之前使用字段名称生成SQL,如果它实际上不能使用它们的话?

Bah,令人沮丧。

回答

1

这些是最有可能的占位符,您可以在其中手动输入自己的值。它不会自动知道您想要插入的值,因此无法为您填充整个查询。相反,它提供了示例值,以便知道需要输入的数据类型,然后您需要自己指定数据。 SQL服务器做同样的事情(右键单击表格,文字表的插入):

INSERT INTO [5819338].[dbo].[Customer] 
      ([ID] 
      ,[Name]) 
    VALUES 
      (<ID, int,> 
      ,<Name, varchar(50),>) 

而且我相信有一个快捷键,显示一个弹出窗口,您可以输入模板值。也许在MySQL编辑器中有类似的东西?我不知道。

+0

哦,所以大括号就像MSSQL中的<>括号一样?我认为他们可能会被MySQL自动过滤掉。如果{ID:INT}与相同,那么没关系,我可以处理这个问题。我以为MySQL只是给了我这个插入语句,因为它过滤了括号和字段名称,因此我很困惑它为什么不起作用。干杯! – boolean 2011-06-17 13:43:30