Profesyonel kurulum komut ALTER TABLE SQL kullanmadan
Jonathon Day diyor
< . p ^"güncellemeler şeklinde olmamalıdır SQL komutları". Rastlamak görmedim DDL ya. VİD o olamaz statments Profesyonel olmak. config üzerinden yürütülen yapılar.
(Soru How can I migrate configuration changes from development to production environment?)
Ekle//SQL güvenmeden bu şekilde bir tablo, ama/sütun ya da dizin değiştirmek kaldırmak için nasıl bilmek istiyorum? Hatta mümkün mü?
Ayrıca, ne diğer eylemleri yalnızca SQL yapılabilir?
CEVAP
Kur komut dosyası içinde bu tür yöntemleri kullanabilirsiniz:
Varien_Db_Ddl_Table
Sınıf alanları, anahtarlar,$this->getConnection()->createTable($tableObject)
ile birlikte ilişkiler yapılandırabileceğiniz yeni bir tablo oluşturmak için kullanın Örnek:/* @var $this Mage_Core_Model_Resource_Setup */ $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);
Bağlantı kur (
$this->getConnection()
) kullanma yöntemleri:- 5* *yöntemi tablo çıkmadan yeni bir sütun ekler. Bu parametreler vardır:
$tableName
- değiştirilmesi gereken tablo adı$columnName
- eklenmesi gereken sütun adı$definition
- sütun tanımı (INT(10)
,DECIMAL(12,4)
, vs.)
- 11* *yöntemi yeni bir kısıtlama yabancı anahtar oluşturur. Bu parametreler vardır
$fkName
- yabancı anahtar adı benzersiz olmalıdırFK_
belirtmek musun diye başına veritabanı eklenecektir otomatik olarak önek$tableName
- Yabancı bir anahtar eklemek için tablo adı$columnName
- eğer karmaşık bir yabancı anahtar, virgül birden fazla sütun belirtmek için kullanın bir tablo yetkisine sahip olmalıdır sütun adı$refTableName
- ele alınacaktır şehirlerinde yabancı tablo adı$refColumnName
- sütun ad(lar) ı yabancı tablo$onDelete
sıra yabancı tabloda çıkarma eylemi. Boş dize (hiçbir şey yapma),cascade
,set null
olabilir. Bu alan isteğe bağlıdır, ve eğer belirtilmişse,cascade
değer kullanılacaktır.$onUpdate
satır yabancı tablosunda güncelleme anahtar eylem. Boş dize (hiçbir şey yapma),cascade
,set null
olabilir. Bu alan isteğe bağlıdır, ve eğer belirtilmişse,cascade
değer kullanılacaktır.$purge
yabancı anahtar ekledikten sonra satır (başvurulan bu recodrs örneğin kaldırmak) temizlik sağlayan bayrak
- 27* *yöntemi bir tabloya dizin eklemek için kullanılır. Bu parametreler vardır:
$tableName
- dizin eklenecek tablonun adı$indexName
- dizin adı$fields
sütun ad(lar) ı Endeksi kullanılmıştır$indexType
- dizin türü. Değerler mümkün: **, , *, *35unique
*34 32*. Bu parametre isteğe bağlıdır, varsayılan değerindex
- 37* *yöntem mevcut tablodan sütun kaldırmak için kullanılır. Bu parametreler vardır:
$tableName
- değiştirilmesi gereken tablo adı$columnName
- kaldırılması gereken sütunun adı
- 40* *yöntem yabancı anahtarları kaldırmak için kullanılır. Bu parametreler vardır:
$tableName
- yabancı bir anahtar kaldırmak için tablo adı$fkName
- yabancı anahtar adı
- 43* *yöntem tablonun dizinler kaldırmak için kullanılır. Bu parametreler vardır:
$tableName
- dizin çıkarılması gereken tablo adı$keyName
- dizin adı
- 46* *yöntemi tabloda varolan bir sütun değiştirmek için kullanılır. Bu parametreler vardır:
$tableName
- değiştirilmesi gereken tablo adı$columnName
- adlandırılması gereken sütunun adı$definition
- sütunun yeni bir tanım (INT(10)
,DECIMAL(12,4)
, vs.)
changeColumn
yöntem ve tabloda varolan bir sütun değiştirmek yeniden adlandırmak için kullanılır. Bu parametreler vardır:$tableName
- değiştirilmesi gereken tablo adı$oldColumnName
- yeniden ve değiştirilmesi gereken sütun, eski adı$newColumnName
- sütunun yeni bir isim$definition
- sütunun yeni bir tanım (INT(10)
,DECIMAL(12,4)
, vs.)
- 59* *yöntem, örneğin, Bunu için hali hazırda tablo motoru değiştirmek için kullanılır. Bu parametreler vardır:
$tableName
- tablo adı$engine
- yeni motor adı (, *, **MyISAM
62 64*, vb)
- 5* *yöntemi tablo çıkmadan yeni bir sütun ekler. Bu parametreler vardır:
Ayrıca tableColumnExists
yöntem sütunun varlığını kontrol etmek için kullanabilirsiniz.
Sizin için geçerli olan yöntem tam liste, doğrudan SQL sorguları kurtulmak yazılı değildir. Varien_Db_Adapter_Pdo_Mysql
Zend_Db_Adapter_Abstract
sınıflara daha fazla bulabilirsiniz.
Sınıf tanımı wich içine bakmak için tereddüt etmeyin kullanacağınız, kendiniz için ilginç bir çok şey bulabilirsiniz :)
SQL Server alter rename table...
Nasıl tek bir ALTER TABLE deyimi ile b...
alter table sütun1 SONRA BİRDEN çok sü...
Alter Table Sözdizimi Sütun Ekle...
sqlite tek bir alter table deyimi için...