MySQL에서는 Oracle에서 제공하는 rowid 기능을 직접 사용할 수 없습니다. 그러나 데이터 조작 작업에 대해 유사한 기능을 달성하기 위한 대체 접근 방식이 있습니다.
Oracle의 rowid 사례와 같이 중복 값을 제거하고 기본 키를 적용하려면 다음을 수행할 수 있습니다. 다음 단계를 따르세요.
세션 사용 변수:
SELECT @rowid:=@rowid+1 as rowid FROM table1, (SELECT @rowid:=0) as init ORDER BY sorter_field
각 행에 대해 rowid와 유사한 고유 식별자를 생성합니다.
임시 생성 테이블:
CREATE TEMPORARY TABLE duplicates ...
임시 테이블에 범위 하위 쿼리 삽입:
INSERT INTO duplicates (rowid, field1, field2, some_row_uid) SELECT @rowid:=IF(@f1=field1 AND @f2=field2, @rowid+1, 0) as rowid, @f1:=field1 as field1, @f2:=field2 as field2, some_row_uid FROM testruns t, (SELECT @rowid:=NULL, @f1:=NULL, @f2:=NULL) as init ORDER BY field1, field2 DESC;
삭제 중복:
DELETE FROM my_table USING my_table JOIN duplicates ON my_table.some_row_uid = duplicates.some_row_uid AND duplicates.rowid > 0
이 접근 방식은 MySQL에 직접적으로 동등한 rowid가 없는 문제에 대한 해결 방법을 제공하여 기본 키 없이 테이블에서 데이터 조작 작업을 수행할 수 있게 해줍니다.
위 내용은 MySQL에서 Oracle의 RowID 기능을 어떻게 복제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!