【发布时间】:2018-05-05 01:37:13
【问题描述】:
在我的数据库中,一些表和列是用排序规则明确定义的:
CREATE TABLE `MyTable` (
`MyTableId` int(11) NOT NULL AUTO_INCREMENT,
`CommandName` varchar(255) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`MyTableId`),
ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
现在在数据库级别定义了默认字符集和排序规则
ALTER DATABASE `MyDatabase` CHARACTER SET latin1 COLLATE latin1_general_ci;
是否可以删除排序规则(无需重新创建表),因此很明显正在使用数据库中的默认设置。当为表格编写脚本时,希望改为:
CREATE TABLE `MyTable` (
`MyTableId` int(11) NOT NULL AUTO_INCREMENT,
`CommandName` varchar(255) NOT NULL,
PRIMARY KEY (`MyTableId`),
ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=latin1;
在没有指定排序规则值的情况下进行了尝试,但是在编写脚本时数据库是相同的
ALTER TABLE MyTable MODIFY CommandName varchar(255)
【问题讨论】:
-
@SebastianBrosch,不,这不是这篇文章的重复。正如我所说,尝试使用 ALTER 但没有产生我想要的结果