Erstellen Sie Einzigartige Feld in Codeigniter DBForge Migration
Wie kann ich machen das financial_year
Feld als unique mit Codeigniter Dbforge
migration?
function up() {
$this->dbforge->add_field(array(
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE
),
'financial_year' => array(
'type' => 'VARCHAR',
'constraint' => 20
),
'start_date' => array(
'type' => 'DATE'
),
'end_date' => array(
'type' => 'DATE'
),
'status' => array(
'type' => "ENUM",
'constraint' => "'Active','Inactive'",
'default' => "Active"
),
'created_on' => array(
'type' => 'TIMESTAMP'
)
));
$this->dbforge->add_key('id', TRUE); //add `id` as primary key
$this->dbforge->create_table('financial_year'); //create table schema
}
InformationsquelleAutor devo | 2014-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da keine option zu tun, dass in der Datenbank-Treiber.
entweder schreiben die SQL, um die Tabelle zu erstellen, die manuell oder (und das ist nicht das, was ich empfehlen würde) ändern Sie die DB_forge.php und Ihre Datenbank-Treiber. (z.B. mysql_forge.php), um eindeutige Schlüssel. Blick auf den code denke ich, Sie würde nur noch eine Klasse variable namens 'unique_keys' und führen Sie den code, wo 'keys' und 'Primärschlüssel' sind das hinzufügen eindeutiger Schlüssel in.
andere Möglichkeit ist die Verwendung des dbforge wie geschrieben, dann einfach modifizieren Sie die Tabelle nach Erstellung
$this->db->query
? Das bricht meiner migrationRichtig - so sollte es sein:
$this->db->query('ALTER TABLE financial_year ADD UNIQUE INDEX (financial_year)');
InformationsquelleAutor pgee70
Diese Frage markiert ist, als CodeIgniter2 - @pgee70 Antwort ist richtig
aber
CodeIgniter3 unterstützt die Schaffung von einzigartigen Bereichen.
Fügen Sie einfach
dem Feld
In diesem Fall:
sehen
CodeIgniter user_guide
InformationsquelleAutor lumos0815