<bdo id='1xJuW'></bdo><ul id='1xJuW'></ul>

  1. <legend id='1xJuW'><style id='1xJuW'><dir id='1xJuW'><q id='1xJuW'></q></dir></style></legend>
  2. <i id='1xJuW'><tr id='1xJuW'><dt id='1xJuW'><q id='1xJuW'><span id='1xJuW'><b id='1xJuW'><form id='1xJuW'><ins id='1xJuW'></ins><ul id='1xJuW'></ul><sub id='1xJuW'></sub></form><legend id='1xJuW'></legend><bdo id='1xJuW'><pre id='1xJuW'><center id='1xJuW'></center></pre></bdo></b><th id='1xJuW'></th></span></q></dt></tr></i><div id='1xJuW'><tfoot id='1xJuW'></tfoot><dl id='1xJuW'><fieldset id='1xJuW'></fieldset></dl></div>

    1. <tfoot id='1xJuW'></tfoot>

      <small id='1xJuW'></small><noframes id='1xJuW'>

      在 ALTER TABLE -- mysql 之前检查列是否存在

      时间:2023-06-24

          • <bdo id='K2Rvt'></bdo><ul id='K2Rvt'></ul>
            <i id='K2Rvt'><tr id='K2Rvt'><dt id='K2Rvt'><q id='K2Rvt'><span id='K2Rvt'><b id='K2Rvt'><form id='K2Rvt'><ins id='K2Rvt'></ins><ul id='K2Rvt'></ul><sub id='K2Rvt'></sub></form><legend id='K2Rvt'></legend><bdo id='K2Rvt'><pre id='K2Rvt'><center id='K2Rvt'></center></pre></bdo></b><th id='K2Rvt'></th></span></q></dt></tr></i><div id='K2Rvt'><tfoot id='K2Rvt'></tfoot><dl id='K2Rvt'><fieldset id='K2Rvt'></fieldset></dl></div>
            <legend id='K2Rvt'><style id='K2Rvt'><dir id='K2Rvt'><q id='K2Rvt'></q></dir></style></legend>

          • <tfoot id='K2Rvt'></tfoot>

              <tbody id='K2Rvt'></tbody>

                <small id='K2Rvt'></small><noframes id='K2Rvt'>

              • 本文介绍了在 ALTER TABLE -- mysql 之前检查列是否存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                有没有办法在 ALTER TABLE ADD coumn_name 语句运行之前(或运行时)检查 mySQL 数据库中是否存在列?类似于 IF 列不存在 ALTER TABLE 的东西.

                Is there a way to check if a column exists in a mySQL DB prior to (or as) the ALTER TABLE ADD coumn_name statement runs? Sort of an IF column DOES NOT EXIST ALTER TABLE thing.

                我已经尝试了 ALTER IGNORE TABLE my_table ADD my_column 但如果我添加的列已经存在,这仍然会引发错误.

                I've tried ALTER IGNORE TABLE my_table ADD my_column but this still throws the error if the column I'm adding already exists.

                用例是升级已安装的网络应用程序中的表 - 为了简单起见,我想确保我需要的列存在,如果不存在,请使用 添加它们更改表

                use case is to upgrade a table in an already installed web app-- so to keep things simple, I want to make sure the columns I need exist, and if they don't, add them using ALTER TABLE

                推荐答案

                由于 mysql 控制语句(例如IF")只在存储过程中起作用,因此可以创建并执行临时的:

                Since mysql control statements (e.g. "IF") only work in stored procedures, a temporary one can be created and executed:

                DROP PROCEDURE IF EXISTS add_version_to_actor;
                
                DELIMITER $$
                
                CREATE DEFINER=CURRENT_USER PROCEDURE add_version_to_actor ( ) 
                BEGIN
                DECLARE colName TEXT;
                SELECT column_name INTO colName
                FROM information_schema.columns 
                WHERE table_schema = 'connjur'
                    AND table_name = 'actor'
                AND column_name = 'version';
                
                IF colName is null THEN 
                    ALTER TABLE  actor ADD  version TINYINT NOT NULL DEFAULT  '1' COMMENT  'code version of actor when stored';
                END IF; 
                END$$
                
                DELIMITER ;
                
                CALL add_version_to_actor;
                
                DROP PROCEDURE add_version_to_actor;
                

                这篇关于在 ALTER TABLE -- mysql 之前检查列是否存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:如何更改超过 1 列的表列数据类型? 下一篇:向现有 SQLite 表添加约束

                相关文章

                <i id='Qdazp'><tr id='Qdazp'><dt id='Qdazp'><q id='Qdazp'><span id='Qdazp'><b id='Qdazp'><form id='Qdazp'><ins id='Qdazp'></ins><ul id='Qdazp'></ul><sub id='Qdazp'></sub></form><legend id='Qdazp'></legend><bdo id='Qdazp'><pre id='Qdazp'><center id='Qdazp'></center></pre></bdo></b><th id='Qdazp'></th></span></q></dt></tr></i><div id='Qdazp'><tfoot id='Qdazp'></tfoot><dl id='Qdazp'><fieldset id='Qdazp'></fieldset></dl></div>

                  <small id='Qdazp'></small><noframes id='Qdazp'>

                  <tfoot id='Qdazp'></tfoot>
                    <bdo id='Qdazp'></bdo><ul id='Qdazp'></ul>
                  <legend id='Qdazp'><style id='Qdazp'><dir id='Qdazp'><q id='Qdazp'></q></dir></style></legend>