【问题标题】:Problem with creating a view in mySQL workbench在 mySQL 工作台中创建视图的问题
【发布时间】:2021-12-26 06:52:30
【问题描述】:

我遇到了一个奇怪的问题。在工作台中创建视图时,我的代码将转换为一行。我不知道为什么。而且不知道如何解决它。老实说,我没有做任何特别的事情。只需右键单击视图并选择创建视图。我在那里编写了代码,单击应用后,将代码简单地转换(并且总是这样做,但仅在我正在创建的一个视图上,其他视图工作正常并且代码可读)成一行。如果您同意,这太可怕了,几乎完全无法阅读。所以我想知道是否有人遇到过这个问题,如果你知道我将如何解决它会更好。

编辑:

经过一些测试,我发现导致这种情况的行在代码的选择部分中:

round(avg(cast(datediff(sysdate(), a.birthdate) as float))/365.242199, 2) as averageAge

还有更多信息。我正在使用 AdventureWorks 数据库,我认为它是从 2005 年开始的。

【问题讨论】:

  • 我无法在我添加的新选项卡中重现它(SELECT * FROM abc),我可以对它进行美化,当我选择改变视图时它会被转换,但只有 * 是完整的文本。您使用的是哪个工作台版本?
  • 版本为8.0.27。我刚刚发现这条线是那个奇怪的代码转换的原因。如果我不选择它,点击应用后一切看起来都很正常:round(avg(cast(datediff(sysdate(), a.birthdate) as float))/365.242199, 2) as averageAge
  • 可能是 qa 错误,当您发布 ot 时还添加您的表格和视图示例,因为他们还想要 minimal reproducible example
  • 我实际上正在使用 Adventureworks 数据库(我认为是从 2005 年开始)。对于整个视图,我使用 4 个表。但这可能是一个奇怪的错误。因为只从 select 中删除那一件事就解决了这个问题。但是当我重新添加它时,我的代码再次转换为一行。但是还是不知道怎么解决

标签: mysql mysql-workbench


【解决方案1】:

好的,所以我刚刚从代码中删除了“cast...as float”,现在我得到了可读的格式,而不是在点击应用后一行。显然我得到的值仍然是正确的。我不知道为什么会发生这个错误,但这解决了我的问题。

【讨论】:

  • 就像我说的那样做一个错误报告
猜你喜欢
  • 2012-03-06
  • 2019-03-06
  • 1970-01-01
  • 2011-08-20
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多