programing

열을 null로 변경

sourcetip 2023. 4. 22. 23:24
반응형

열을 null로 변경

테이블 열을 null로 변경하려고 합니다.사용한 적이 있습니다.

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

이로 인해 에러가 발생합니다.Modify올바른 구문은 무엇입니까?

가정하다SQL Server(앞으로 질문하신 내용에 따라):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

교체하다INT실제 데이터 유형으로 변환합니다.

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

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

MySQL 사용자의 이해를 돕기 위해 여기에 게시합니다.

포스트그레스QL:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;

Oracle Database 10g 사용자:

alter table mytable modify(mycolumn null);

그렇지 않으면 "ORA-01735: invalid ALTER TABLE 옵션"이 표시됩니다.

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

RDB가 뭔지는 모르겠지만사용하고 있는 MS는 단순히 null로 할 것이 아니라 전체 열 사양을 지정해야 할 수도 있습니다.예를 들어, 현재,INT NOT NULL, 발행해야 합니다.ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.

SQL Server 또는 TSQL의 경우

ALTER TABLE Complaint.HelplineReturn ALTER COLUMN IsDisposed BIT NULL 

다른 사용자가 관찰한 바와 같이 명령어의 정확한 구문은 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>

이것은 사용하고 있는SQL Engine에 따라 달라집니다.Sybase에서는 명령어가 정상적으로 동작합니다.

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

HSQLDB의 경우:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

이거면 될 거야.

null이 아닌 열을 null을 허용하도록 변경하는 경우 null 구를 포함하지 않아도 됩니다.기본 열은 null이 되지 않기 때문입니다.

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

오라클

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

SQLite

ALTER TABLE 명령어는 조금 특별합니다.열을 수정할 수 없습니다.새 열을 생성하고 데이터를 마이그레이션한 다음 열을 삭제해야 합니다.

-- 1. First rename
ALTER TABLE
    Merchant_Pending_Functions
RENAME COLUMN
    NumberOfLocations
TO
   NumberOfLocations_old

-- 2. Create new column
ALTER TABLE
    Merchant_Pending_Functions
ADD COLUMN
    NumberOfLocations INT NULL

-- 3. Migrate data - you need to write code for that
-- 4. Drop the old column
ALTER TABLE
    Merchant_Pending_Functions
DROP COLUMN
    NumberOfLocations_old

수정할 열의 data_type을 추가해야 합니다.

ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME DATA_TYPE NULL;

언급URL : https://stackoverflow.com/questions/3556890/altering-a-column-to-be-nullable

반응형