![](/img/trans.png)
[英]Laravel: How to create migration file for drop multiple columns from a table?
[英]Drop columns from a table
我有一個.csv文件數據正在導入到mysql表中。 每次運行代碼時,我想做的是我想刪除所有列和數據,並用更新的.csv內容替換它。
$affectedRows = $pdo->exec("
//HERE I do need additional code to drop column data from $databasetable similar to following
/*------------------------------------------*/
DROP TABLE IF EXISTS '$databasetable'
CREATE TABLE IF NOT EXISTS `$databasetable` (
Column names1
Column name 2
.
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*------------------------------------------*/
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
LINES TERMINATED BY ".$pdo->quote($lineseparator));
我認為您想要做的是截斷有問題的表。 那就是刪除表中的所有數據,而不是刪除表本身,對嗎? 因此,這里有1條提示:
<?php
//FIRST TRUNCATE (REMOVE OLD DATA IN THE TABLE $databasetable
$stmt = $db->prepare("TRUNCATE TABLE {$databasetable}");
$tblEmpty = $stmt->execute();
//NOW, ONCE THE TABLE'S BEEN TRUNCATED; YOU MAY CONTINUE WITH THE NEW "INSERTS"...
if($tblEmpty){
// INSERT THE DATA FROM THE CSV...
}
//...
//...
// MORE CODE HERE...
$affectedRows = $pdo->exec("
//HERE I do need additional code to drop column data from $databasetable similar to following
/*------------------------------------------*/
/* I REMOVED THE SINGLE QUOTESFROM $databasetable and I was able to drop the table. Once the table was dropped then I was able to create the $databasetable which solved the problem.
DROP TABLE IF EXISTS $databasetable;
CREATE TABLE IF NOT EXISTS `$databasetable` (
Column names1
Column name 2
.
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*------------------------------------------*/
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
LINES TERMINATED BY ".$pdo->quote($lineseparator));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.