我们可以创建两个(或更多)列在Postgres/MySQL具有相同的名称,但不同的情况?在列名中区分大小写很重要吗?
例如,一个表可以包含两个列,它们的名字分别是COL
和col
吗?
链接帖子:我们可以在数据库中创建两个相同名称的列吗?只讨论相同的名称,但不讨论大小写敏感性。
我们可以在Postgres/MySQL中创建两个(或更多)列名字只是一个不同的案例?就像区分大小写一样列名?
不可能创建具有相同名称的列-是大小写敏感问题。
MySQL示例:
CREATE TABLE test(
id int,
id int
);
CREATE TABLE test1(
id int,
ID int
);
MySQL的输出:
Schema Error: Error: ER_DUP_FIELDNAME: Duplicate column name 'id'
PostgreSQL的输出:
Schema Error: error: column "id" specified more than once
SELECT语句:
SELECT
id as "id",
ID1 as "id"
FROM test;
输出:id
2
区分大小写的选择:
SELECT
id as "id",
ID1 as "ID"
FROM test;
输出:id ID
1 2
在标准SQL中,带引号的标识符是区分大小写的,Postgres遵循这个标准。
所以如下:
select column_one as "COL",
column_two as "col"
from ...
或作为表的一部分
create table dont_do_this
(
"COL" integer,
"col" integer
);
这是两个不同的名称,因为它们由于使用双引号而区分大小写。
但是我强烈建议不要这样做。这很可能会造成混乱和问题。
我认为这应该也适用于MySQL,但由于它传统上不关心遵循SQL标准,我不知道。