mysql文件导入现有数据库表中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql文件导入现有数据库表中相关的知识,希望对你有一定的参考价值。
我有一个.sql文件,想导入mysql数据库中的一张表中,但是,2表的字段是完全不一样的,有什么方法可以导入,我现在导入只是直接导入mysql数据库中,是否需要修改字段使2表字段匹配然后导入,那么修改后,在phpmyadmin中,应该如何操作来完成导入.另,我的.sql文件2G大,用sqlserver,editplus,dw,记事本,写字板都不能打开,用什么方法可以打开呢
记事本是打不开的,如图,其次,你的意思我没有怎么明白.比如,我需要导入mysql的数据库的文件名字叫做a.sql,有表user, 数据库中本身b.sql中有表merber,那么,我是如何具体操作,请明确一点...
2个表的数据结构不一样是肯定不行的,而且.sql导出的文件是那种最基础的insert语句,所以要先转换一下。
先建一个和2g文件一样的表,然后把数据导入。
然后写个和新表一样结构的select文件,然后再导出来。
这里要考虑一下是否存在不可重复的列,比如自增ID,这个就不要导出了,不然和新表会有冲突的。 参考技术A 看你sql文件的形式了,普通编辑器一般是一次性把内容读入内存的,你文件太大 应该会卡机。用UltraEdit应该可以打开。
不知道你sql文件中有没有建表/键数据库的语句,总之先修改你现有数据表满足sql文件的格式, 然后再改成你想要的形式。
命令行形式导入操作: 在dos窗口下切换到mysql的bin目录
mysql.exe -u用户名 -p密码 数据库名 (回车)
source sql文件的绝对路径 (回车) 参考技术B 方法如下:
Linux下
均在控制台下操作。
导入数据库:
前提:数据库和数据表要存在(已经被创建)
(1)将数据表 test_user.sql 导入到test 数据库的test_user 表中
[root@test ~]# mysql -uroot
-p test < /www/web/test/test_user.sql
(2) 将数据库 test.sql 导入到 test 数据库test 中
[root@test ~]# mysql -uroot -p test
< /www/web/test/test.sql
(3)source命令不在控制台下,要进入mysql下操作
mysql> use test;
mysql>source
/www/web/test/test.sql 参考技术C 在sql里还原后打开 然后导出sql语句
最笨的办法 查询mssql 插入mysql 参考技术D 在sql里还原后打开 然后导出sql语句
最笨的办法 查询mssql 插入mysql
如何使用另一个 MySQL 表中的现有数据填充预先选择的下拉字段?
【中文标题】如何使用另一个 MySQL 表中的现有数据填充预先选择的下拉字段?【英文标题】:How to populate dropdown field pre-selected with the existing data from another MySQL table? 【发布时间】:2018-03-24 02:13:12 【问题描述】:在我的数据库中,我有 2 个表:
为了插入数据,我有一个表单,它从表formulation
中填充下拉选项。这是配方下拉列表的插入表单的样子:
<?php
$formulation = '';
$query = "SELECT * FROM formulation";
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_array($result))
$formulation .= '<option value="' . $row["formulationID"] . '">' . $row["formulation_name"] . '</option>';
?>
<select>
<option value="">Select formulation</option>
<?php echo $formulation; ?>
</select>
现在我正在处理“更新”表单。但我的问题是如何使用formulation
表中的数据(如插入表单)填充“公式”字段下拉列表,但使用来自@987654330 的name
的现有formulation
值预先选择@ 桌子?像下面这张图片:
我对如何构建表单有疑问。我应该如何处理这个表格?
<?php
$output = array('data' => array());
$sql = "SELECT * FROM items";
$query = $connect->query($sql);
while ($row = $query->fetch_assoc())
$output['data'][] = array(
$row['name'],
);
echo json_encode($output);
?>
<form action=" " method="POST">
<div>
<label>Name</label>
<input type="text"><br>
<label>Formulation</label>
<select >
<!--What should be the codes here? -->
</select>
</div>
<button type = "submit">Save changes</button>
</form>
提前感谢您的建议。
【问题讨论】:
总体思路是更新特定项目?那么更新操作实际上更新了 items 表? 是的,你是对的。 @Solmyr 【参考方案1】:注意:我不是mysqli
的用户,所以可能会有一些错误,但你会明白的。这不会解决更新部分,只是填充部分
由于您正在编辑某个项目,我假设您有一些东西可以获取该项目的itemID
。
<?php
$sql = "SELECT * FROM items WHERE itemID = ?";
$query = $connect->prepare($sql);
$query->bind_param("s", $yourItemID);
$query->execute();
$result = $query->fetch_assoc();
$itemName = $result['name'];
$itemFormulation = $result['formulation_fk'];
//now you have the name and the formulation of that certain item
?>
<form action=" " method="POST">
<div>
<label>Name</label>
<input type="text" value="<?php echo $itemName; ?>"><br>
<label>Formulation</label>
<select >
<?php
$query = "SELECT * FROM formulation";
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_array($result))
?>
<option value="<?php echo $row['formulationID']; ?>" <?php echo ($row['formulationID'] == $itemFormulation) ? 'selected' : ''; ?>>
<?php echo $row['formulation_name']; ?>
</option>
<?php
?>
</select>
</div>
<button type = "submit">Save changes</button>
</form>
我修改了代码以更好地适应问题,可能有错别字,请评论澄清
【讨论】:
感谢您的建议。我正在研究它以适应我现有的系统。之后我一定会告诉你的。 :) 我不确定我使用的功能,所以在需要时替换它们。【参考方案2】:如果我理解您的问题...您必须将您的结果放入字符串中。例如:
<?php
$output = array('data' => array());
$sql = "SELECT * FROM items";
$query = $connect->query($sql);
$option = '';
while ($row = $query->fetch_assoc())
$name=$row['name'],
$option.='<option value="$name">$name</option>'
echo json_encode($output);
?>
<form action=" " method="POST">
<div>
<label>Name</label>
<input type="text"><br>
<label>Formulation</label>
<select >
<?=$option?>
</select>
</div>
<button type = "submit">Save changes</button>
</form>
希望能帮到你
【讨论】:
这怎么知道某个物品有什么样的配方?据我所知,您在select
中嵌入了项目名称而不是配方名称
我所有的网页都使用这种方法。元素名称可以替换为另一个元素。【参考方案3】:
这应该可以解决问题:
<?php
$itemsSql = "SELECT * FROM items WHERE itemId = 5";
$itemQuery = $connect->query($sql);
$item = $itemQuery->fetch_assoc();
$formulationsSql = "SELECT * FROM formulation";
$formulationsQuery = $connect->query($sql);
$formulations = $itemQuery->fetch_assoc();
?>
<form action="updateItem" method="POST">
<div>
<label>Item Name</label>
<input type="text" value="<?= $item[0]['name']; ?>"><br>
<label>Formulation</label>
<select>
<?php foreach($formulations as $formulation)
echo '<option value="'. $formulation['formulationId'].'">' .
$formulation['formulation_name'] . '</option>';
?>
</select>
</div>
<button type = "submit">Save changes</button>
</form>
【讨论】:
以上是关于mysql文件导入现有数据库表中的主要内容,如果未能解决你的问题,请参考以下文章