SQL 新手只是试图导入 SQL 转储以在 python 中使用,不断收到“缺少数据库”和“缺少列”错误

Posted

技术标签:

【中文标题】SQL 新手只是试图导入 SQL 转储以在 python 中使用,不断收到“缺少数据库”和“缺少列”错误【英文标题】:SQL newbie just trying to import an SQL dump to work with in python, keep getting "missing database" and "missing column" errors 【发布时间】:2020-09-05 23:36:01 【问题描述】:

有人告诉我这是来自 MariaDB 数据库的转储。该文件如下所示:

-- --------------------------------------------------------
-- Host:                         X
-- Server version:               X
-- Server OS:                    X
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Dumping data for table table.mctable: ~42.420 rows (approximately)
/*!40000 ALTER TABLE `mctable` DISABLE KEYS */;
INSERT INTO `mctable` (`created`, `dev`, `no`, `lbl`) VALUES
    ('string', 42, 42, 'string'),
.
.
.
/*!40000 ALTER TABLE `mctable` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

是因为这个文件缺少什么吗?有什么方法可以将值导入数据框或其他东西吗?在我使用它们时,我真的不需要将它们存储在数据库中。

【问题讨论】:

【参考方案1】:

Shared Dump 缺少表架构,如果要将其导入远程数据库,则需要先创建数据库和表架构。

CREATE DATABASE Billing;    
CREATE TABLE Customer (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL
) 

【讨论】:

以上是关于SQL 新手只是试图导入 SQL 转储以在 python 中使用,不断收到“缺少数据库”和“缺少列”错误的主要内容,如果未能解决你的问题,请参考以下文章

制作 SQL Server 转储并将该转储导入另一个 SQL Server 的最佳(最简单)方法

导入大 sql 转储时出现 PHPMYADMIN 错误

使用 pgAdmin 导出和导入表转储 (.sql)

如何在没有此错误的情况下将此 SQL 转储导入 PhpMyAdmin?

如何将 mysql 转储导入 SQL Server 数据库

将 MySQL 转储导入 Google SQL - unique_checks=0 是不确定的