PostgreSQL文件导入到表错误

t3psigkw  于 2022-12-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(164)

我想把我为测试而创建的文件传输到postgresql文件中,我使用以下命令完成了这一操作:psql -h localhost -d test -U postgres -f C:\test1.sql它给了我一个如下的错误:

`ERROR: Syntax error in place " ' "
LINE 1: INSERT INTO `test1` (`idcustomer`, `testid`, `customername`, `custlastname`, `birthid...`

我的代码:

`-- phpMyAdmin SQL 
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Nov 22, 2022 at 04:31 PM
-- Server version: 10.4.25-MariaDB
-- PHP Version: 8.1.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `data`
--

-- --------------------------------------------------------

--
-- Table structure for table `test1`
--

CREATE TABLE `test1` (
  `idcustomer` int(5) NOT NULL,
  `testid` varchar(250) DEFAULT NULL,
  `customername` varchar(250) DEFAULT NULL,
  `custlastname` varchar(250) DEFAULT NULL,
  `birthid` varchar(250) DEFAULT NULL,
  `name` varchar(250) DEFAULT NULL,
  `namee` varchar(250) DEFAULT NULL,
  `named` varchar(250) DEFAULT NULL,
  `phonenumber` varchar(250) DEFAULT NULL,
  `testname` varchar(250) DEFAULT NULL,
  `testnumber` varchar(250) DEFAULT NULL,
  `testnamee` varchar(250) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

--
--  data for table `test1`
--

INSERT INTO 'test1' (`idcustomer`, `testid`, `customername`, `custlastname`, `birthid`, `name`, `namee`, `named`, `phonenumber`, `testname`, `testnumber`, `testnamee`) VALUES
(1, '45645', 'jack', 'xxx', '151', 'nameeeee', 'testtt', 'xname', '585', 'xdname', '985', 'xs'),
(2, '44524', 'adam', 'testt', '525', 'nameee', 'testttt', 'yname', '568', 'xdname', '854', 'xb'),`

我怎么才能把这个文件导入postgresql?我疯了从得到这样的错误。
我怎样才能解决这个问题呢?

euoag5mw

euoag5mw1#

转换此类脚本的规则:

  • 删除开头的SET命令
  • 删除所有```
  • 删除ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
  • 删除整数列的“显示提示”(int(x)--〉int
  • 不要对表名使用单引号'test1'-〉test1
  • 读取PostgreSQL manual
CREATE TABLE test1 (
  idcustomer int NOT NULL,
  testid varchar(250) DEFAULT NULL,
  customername varchar(250) DEFAULT NULL,
  custlastname varchar(250) DEFAULT NULL,
  birthid varchar(250) DEFAULT NULL,
  name varchar(250) DEFAULT NULL,
  namee varchar(250) DEFAULT NULL,
  named varchar(250) DEFAULT NULL,
  phonenumber varchar(250) DEFAULT NULL,
  testname varchar(250) DEFAULT NULL,
  testnumber varchar(250) DEFAULT NULL,
  testnamee varchar(250) DEFAULT NULL
);

INSERT INTO test1 (idcustomer, testid, customername, custlastname, birthid, name, namee, named, phonenumber, testname, testnumber, testnamee) VALUES
(1, '45645', 'jack', 'xxx', '151', 'nameeeee', 'testtt', 'xname', '585', 'xdname', '985', 'xs'),
(2, '44524', 'adam', 'testt', '525', 'nameee', 'testttt', 'yname', '568', 'xdname', '854', 'xb'); --<< replace , with ;

相关问题