在MySQL Workbench中创建新视图时禁用美化代码

时间:2018-10-12 10:47:13

标签: mysql mysql-workbench

通过MySQL Workbench在数据库中创建新视图时,会根据一些隐式Workbench规则自动美化和优化代码。

有一个简单的表(从http://www.artfulsoftware.com/infotree/qrytip.php?id=78借来的代码):

CREATE TABLE tbl( id INT, colID INT, value CHAR(20) ); 
INSERT INTO tbl VALUES 
  (1,1,'Sampo'),(1,2,'Kallinen'),(1,3,'Office Manager'), 
  (2,1,'Jakko'),(2,2,'Salovaara'),(2,3,'Vice President'); 

以下查询创建视图:

CREATE VIEW `test_view` AS
    SELECT  
      id,  
      GROUP_CONCAT(if(colID = 1, value, NULL)) AS 'First Name', 
      GROUP_CONCAT(if(colID = 2, value, NULL)) AS 'Last Name', 
      GROUP_CONCAT(if(colID = 3, value, NULL)) AS 'Job Title' 
    FROM tbl 
    GROUP BY id;

然后由MySQL Workbench转换为它:

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `test_view` AS
    SELECT 
        `tbl`.`id` AS `id`,
        GROUP_CONCAT(IF((`tbl`.`colID` = 1),
                `tbl`.`value`,
                NULL)
            SEPARATOR ',') AS `First Name`,
        GROUP_CONCAT(IF((`tbl`.`colID` = 2),
                `tbl`.`value`,
                NULL)
            SEPARATOR ',') AS `Last Name`,
        GROUP_CONCAT(IF((`tbl`.`colID` = 3),
                `tbl`.`value`,
                NULL)
            SEPARATOR ',') AS `Job Title`
    FROM
        `tbl`
    GROUP BY `tbl`.`id`

是否有一种方法告诉工作台将视图保留为创建时的原始形式?

我最大的问题是将表名添加到每个列名(例如 tblid ),因为我经常需要重用 CREATE VIEW < / em>代码用于具有相同列名的不同表。尽管如此,我发现原始表单更简单易读。

0 个答案:

没有答案