열을 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
'programing' 카테고리의 다른 글
스위프트: 가드렛 vs if let (0) | 2023.04.22 |
---|---|
'npm'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2023.04.22 |
Windows 배치 파일의 한 줄에 여러 명령어가 표시됨 (0) | 2023.04.22 |
ASP 설치 후 Visual Studio 오류 "개체 참조가 개체의 인스턴스로 설정되지 않음"NET 및 웹 툴 2015 (0) | 2023.04.22 |
Azure 스토리지 컨테이너에서 BLOB 개수 가져오기 (0) | 2023.04.22 |