【问题标题】:Creating uppercase MySQL table names with PHP使用 PHP 创建大写 MySQL 表名
【发布时间】:2011-12-09 11:44:11
【问题描述】:

我正在尝试使用此函数创建一个名称为 ID1 的表:

public function createIDTable($IdNumber)
{
    $sql = "CREATE TABLE `Database`.`ID$IdNumber` (`Names` LONGTEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL)";

        $query = mysql_query($sql)or die (mysql_error());
        return "Sucess";
}

它会创建表,但名称总是小写,例如id1。我需要ID1 - 我该怎么做?

【问题讨论】:

  • 只是好奇,为什么不能小写呢?
  • 为了方便,系统的另一部分已经创建使用该语法。

标签: php mysql create-table


【解决方案1】:

如果您使用默认排序规则选项安装 SQL Server,您可能会发现以下查询返回相同的结果:

CREATE TABLE mytable 
( 
    mycolumn VARCHAR(10) 
) 
GO 

SET NOCOUNT ON 

INSERT mytable VALUES('Case') 
GO 

SELECT mycolumn FROM mytable WHERE mycolumn='Case' 
SELECT mycolumn FROM mytable WHERE mycolumn='caSE' 
SELECT mycolumn FROM mytable WHERE mycolumn='case'

您可以通过在列级别强制排序来更改您的查询:

SELECT myColumn FROM myTable  
    WHERE myColumn COLLATE Latin1_General_CS_AS = 'caSE' 

SELECT myColumn FROM myTable  
    WHERE myColumn COLLATE Latin1_General_CS_AS = 'case' 

SELECT myColumn FROM myTable  
    WHERE myColumn COLLATE Latin1_General_CS_AS = 'Case' 

-- if myColumn has an index, you will likely benefit by adding 
-- AND myColumn = 'case' 

【讨论】:

    【解决方案2】:

    http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names

    如果您在具有不区分大小写的文件系统 (Windows) 的服务器上运行 MySQL,请注意此设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2015-07-30
      • 2018-07-26
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多