You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL执行脚本出现error code:1046(未选择数据库)问题求助

搞定MySQL Error 1046: No Database Selected的问题

嘿,我帮你捋捋这个报错的原因哈!先看你的脚本,虽然你写了Use Bookstore;,但大概率是两个问题导致的:

  • 首先,你的Create Table Book语句里Subject_Code nvarc...明显没写完,而且nvarc是拼写错误!应该是nvarchar才对,这个语法错误会让MySQL执行到这里直接卡壳,中断整个脚本。如果前面的Use Bookstore;之后因为这个错误停了,那后面没写完的语句自然就没在指定数据库里跑,直接触发1046错误。
  • 另外,有些MySQL客户端在执行多语句脚本时,如果分隔符设置不对,或者语句排版有问题,也可能导致Use Bookstore;没被正确执行,后续建表语句就找不到数据库了。

给你几个修复步骤

  1. 先把拼写错误改了:把nvarc改成nvarchar,补全你截断的语句。比如如果是关联Subject表的外键,那完整的字段应该是Subject_Code nvarchar(3) NULL, FOREIGN KEY (Subject_Code) REFERENCES Subject(SubjectCode)。
  2. 补全并整理完整脚本:确保语句顺序和语法都没问题,比如完整的脚本应该是这样的:
DROP DATABASE IF EXISTS Bookstore;
CREATE DATABASE Bookstore;
USE Bookstore;
CREATE TABLE Subject (
    SubjectCode nvarchar(3) NOT NULL PRIMARY KEY,
    Subject nvarchar(15) NULL
);
CREATE TABLE Book (
    ISBN nvarchar(13) NOT NULL PRIMARY KEY,
    Title nvarchar(50) NULL,
    Author nvarchar(30) NULL,
    Publisher nvarchar(30) NULL,
    Subject_Code nvarchar(3) NULL,
    FOREIGN KEY (Subject_Code) REFERENCES Subject(SubjectCode)
);
  1. 执行脚本时注意细节:如果用图形化客户端(比如MySQL Workbench、Navicat),要么一次性执行所有语句,要么分步来:先执行前三条删库、建库、选库的语句,再执行建表语句。如果用命令行,就用source 你的脚本路径.sql来执行完整脚本。

排查小技巧

要是还是报错,你可以先手动在MySQL里敲USE Bookstore;,然后单独执行建表语句,看看是不是语法还有问题,这样就能快速区分是选库的问题还是语句本身的问题啦。

内容的提问来源于stack exchange,提问作者Steve Filus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:58:57