iT邦幫忙

0

沒辦法用gorm匯入sql

  • 分享至 

  • xImage

我匯入這段是這樣寫:

func InitDb() (err error) {
	sqlF, err := os.ReadFile(define.SqlPath + sqlFName)
	if err != nil {
		return err
	}

	err = db.Exec(string(sqlF)).Error
	if err != nil {
		return err
	}

	return err
}

gorm會回覆我:

Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET NAMES utf8 */;\r\n/*!50503 SET NAMES utf8mb4 */;\r\n/*!40014 SET @OLD_FOREIGN...' at line 9

但我試著用HeidiSQL import是正常的

目前猜測可能是因為檔案轉移到linux產生的問題,我自己的做法是這樣:
1.windows HeidiSQL export sql file
2.sql file移至wsl中
3.postman打initdb這隻的api

golang程式與mariadb都是運行在wsl裡,只有HeidiSQL是執行在windows

請問我該怎麼做?

obarisk iT邦研究生 2 級 ‧ 2023-03-29 12:39:57 檢舉
這個問題不是 gorm 的問題,連 db.Exec 都不會過了,你有試過 select 1 嗎?

先把 SQL 丟上來再說吧
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
whitefloor
iT邦研究生 2 級 ‧ 2023-03-29 14:52:04

你把export出來的檔案用nodepad++轉換成linux的格式看看

換行字元不一樣,經常的坑

我要發表回答

立即登入回答