널 입력 가능하도록 열 변경


318

테이블 열을 nullable로 변경하고 싶습니다. 나는 사용했다 :

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

에 오류가 발생 Modify합니다. 올바른 구문은 무엇입니까?


7
나중에 오류 메시지를 게시하십시오
a'r

1
SQL Server 태그가 일반 사용자에게 무료로 제공되는 것 같습니다.
Martin Smith

답변:


514

가정 SQL Server(이전 질문을 바탕으로 함) :

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

교체 INT실제 데이터 유형.


43

Oracle Database 10g 사용자의 경우 :

alter table mytable modify(mycolumn null);

다른 방법으로 시도하면 "ORA-01735 : 잘못된 ALTER TABLE 옵션"이 나타납니다.

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

쿨, 당신은 데이터 유형을 지정할 필요가 없습니다, 널을 가능하게하기 위해 "null".
Gabe Halsmer

41

이것이 MySQL 구문 인 경우 다른 응답이 지적했듯이 유형이 누락되었을 수 있습니다. 올바른 MySQL 구문은 다음과 같습니다.

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

MySQL 사용자에게 명확성을 위해 여기에 게시하십시오.


29

PostgresQL에서 다음과 같습니다.

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;

5

어떤 RDBMS를 사용하고 있는지 잘 모르겠지만, 이제는 Null 허용을 원한다고 말하지 않고 전체 열 사양을 제공해야 할 것입니다. 예를 들어, 현재 INT NOT NULL인 경우을 발행해야합니다 ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.


이것은 정확하고 설명적인 답변이므로 Null| NOT NULL이 지정되지 않으면 열은 널 입력 가능합니다.
Hamid Heydarian

4

다른 사람들이 관찰했듯이 명령의 정확한 구문은 DBMS의 풍미에 따라 다릅니다. 사용하는 구문은 Oracle에서 작동합니다.

SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                      NOT NULL VARCHAR2(17)

SQL> alter table MACAddresses
  2       modify corrected_MACAddress null
  3  /

Table altered.

SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                               VARCHAR2(17)

SQL>

0

HSQLDB의 경우 :

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

0
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

이것은 당신을 위해 일할 것입니다.

널이 아닌 열을 변경하여 널을 허용하려는 경우 널이 아닌 절을 포함하지 않아도됩니다. 기본 열은 null이 아니므로

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

0

이것은 Sybase에서 어떤 SQL 엔진을 사용 하느냐에 따라 다릅니다.

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

0

신탁

ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);


이 답변은 @IgorS의 답변 과 관련하여 새로운 것을 가져 옵니까 ? 그리고 무엇 SQL_SCRIPT을 의미합니까?
jpeg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.