您可以在安装脚本中使用以下方法:
使用
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
等)
您也可以使用
tableColumnExistsmethod检查该列的存在。
它不是摆脱直接SQL查询编写的可用方法的完整列表。您可以在
Varien_Db_Adapter_Pdo_Mysql和
Zend_Db_Adapter_Abstract类中找到更多信息。
不要犹豫,将要使用的类定义,可以为自己找到很多有趣的东西:)



