栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不使用SQL的Magento安装脚本中的ALTER TABLE

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不使用SQL的Magento安装脚本中的ALTER TABLE

您可以在安装脚本中使用以下方法:

  • 使用

    Varien_Db_Ddl_Table
    class创建新表,您可以在其中结合
    $this->getConnection()->createTable($tableObject)
    示例配置所有字段,键,关系:

    $table = new Varien_Db_Ddl_Table();
    $table->setName($this->getTable(‘module/table’));
    $table->addColumn(‘id’, Varien_Db_Ddl_Table::TYPE_INT, 10,
    array(‘unsigned’ => true, ‘primary’ => true));


    $table->addColumn(‘name’, Varien_Db_Ddl_Table::TYPE_VARCHAR, 255);
    $table->addIndex(‘name’, ‘name’);
    $table->setOption(‘type’, ‘InnoDB’);
    $table->setOption(‘charset’, ‘utf8’);

    $this->getConnection()->createTable($table);

  • 使用设置连接(

    $this->getConnection()
    )方法:

    • addColumn()
      方法将新列添加到退出表。它具有以下参数:
    • $tableName
      -应该修改的表名
    • $columnName
      -列名,应添加
    • $definition
      -列的定义(
      INT(10)
      DECIMAL(12,4)
      等)
    • addConstraint()
      方法创建一个新的约束外键。它有这样的参数
    • $fkName
      -外键名称在每个数据库中应该是唯一的,如果不指定
      FK_
      前缀,它将自动添加
    • $tableName
      -用于添加外键的表名
    • $columnName
      -应该引用到另一张表的列名,如果您具有复杂的外键,请使用逗号指定多个列
    • $refTableName
      -外部表名,将被处理
    • $refColumnName
      -外部表中的列名
    • $onDelete
      -对删除外部表中的行的操作。可以为空字符串(不执行任何操作)
      cascade
      、、
      set null
      。该字段是可选的,如果未指定,
      cascade
      将使用value。
    • $onUpdate
      外表中行键更新的操作。可以为空字符串(不执行任何操作)
      cascade
      、、
      set null
      。该字段是可选的,如果未指定,
      cascade
      将使用value。
    • $purge
      -用于在添加外键后清除行的标志(例如,删除未引用的记录)
    • addKey()
      方法用于向表添加索引。它具有以下参数:
    • $tableName
      -应该在其中添加索引的表名
    • $indexName
      -索引名称
    • $fields
      -索引中使用的列名
    • $indexType
      -索引的类型。可能的值有:
      index
      unique
      primary
      fulltext
      。此参数是可选的,因此默认值为
      index
    • dropColumn()
      方法用于从现有表中删除列。它具有以下参数:
    • $tableName
      -应该修改的表名
    • $columnName
      -应删除的列名
    • dropForeignKey()
      方法用于删除外键。它具有以下参数:
    • $tableName
      -用于删除外键的表名
    • $fkName
      -外键名称
    • dropKey()
      方法用于删除表索引。它具有以下参数:
    • $tableName
      -应该删除索引的表名
    • $keyName
      -索引名称
    • modifyColumn
      方法用于修改表中的现有列。它具有以下参数:
    • $tableName
      -应该修改的表名
    • $columnName
      -列名,应重命名
    • $definition
      -列的新的定义(
      INT(10)
      DECIMAL(12,4)
      等)
    • changeColumn
      方法用于修改和重命名表中的现有列。它具有以下参数:
    • $tableName
      -应该修改的表名
    • $oldColumnName
      -列的旧名称,应重命名和修改
    • $newColumnName
      -列的新名称
    • $definition
      -列的新的定义(
      INT(10)
      DECIMAL(12,4)
      等)
    • changeTableEngine
      方法用于将表引擎从MyISAM更改为InnoDB。它具有以下参数:
    • $tableName
      -表名
    • $engine
      -新的引擎名称(
      MEMORY
      MyISAM
      InnoDB
      等)

您也可以使用

tableColumnExists
method检查该列的存在。

它不是摆脱直接SQL查询编写的可用方法的完整列表。您可以在

Varien_Db_Adapter_Pdo_Mysql
Zend_Db_Adapter_Abstract
类中找到更多信息。

不要犹豫,将要使用的类定义,可以为自己找到很多有趣的东西:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号