반응형
Oracle 테이블의 마지막 행을 가져오는 방법
Oracle 11g Express 데이터베이스의 테이블에 삽입한 마지막 행을 가져옵니다.이거 어떻게 해?
Oracle 테이블에는 순서 개념이 없기 때문에 테이블의 "마지막" 행은 없습니다.
단, 마지막으로 삽입된 프라이머리 키를 찾고 이 프라이머리 키가 증가수라고 가정하면 다음과 같이 할 수 있습니다.
select *
from ( select a.*, max(pk) over () as max_pk
from my_table a
)
where pk = max_pk
각 행이 생성된 날짜가 있는 경우 컬럼의 이름이 지정되면 다음과 같이 됩니다.created
:
select *
from ( select a.*, max(created) over () as max_created
from my_table a
)
where created = max_created
또는 다음과 같은 집약 쿼리를 사용할 수 있습니다.
select *
from my_table
where pk = ( select max(pk) from my_table )
SELECT * FROM (
SELECT * FROM table_name ORDER BY sortable_column DESC
) WHERE ROWNUM = 1;
select * from table_name ORDER BY primary_id DESC FETCH FIRST 1 ROWS ONLY;
하위 쿼리를 수행하지 않는 가장 간단한 방법입니다.
복합 키 K(k1, ..., kn)에 대한 엄격한 총 순서에 따른 마지막 행:
SELECT *
FROM TableX AS o
WHERE NOT EXISTS (
SELECT *
FROM TableX AS i
WHERE i.k1 > o.k1
OR (i.k1 = o.k1 AND i.k2 > o.k2)
...
OR (i.k1 = o.k1 AND i.k2 = o.k2 AND i.k3 = o.k3 AND ... AND i.kn > o.kn)
)
;
K가 단순(즉, 복합적이지 않음)한 특수한 경우를 고려할 때, 위의 내용은 다음과 같이 요약된다.
SELECT *
FROM TableX AS o
WHERE NOT EXISTS (
SELECT *
FROM TableX AS i
WHERE i.k1 > o.k1
)
;
이 쿼리가 1개의 행만 반환하려면 키는 넥타이 없이 순서를 지정해야 합니다.동점이 허용되면 이 쿼리는 가장 큰 키로 연결된 모든 행을 반환합니다.
다음과 같이 할 수 있습니다.
SELECT * FROM (SELECT your_table.your_field, versions_starttime
FROM your_table
VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE)
WHERE ROWNUM = 1;
또는 다음 중 하나를 선택합니다.
SELECT your_field,ora_rowscn,scn_to_timestamp(ora_rowscn) from your_table WHERE ROWNUM = 1;
SELECT * FROM
MY_TABLE
WHERE
<your filters>
ORDER BY PRIMARY_KEY DESC FETCH FIRST ROW ONLY
$sql = "INSERT INTO table_name( field1, field2 ) VALUES ('foo','bar')
RETURNING ID INTO :mylastid";
$stmt = oci_parse($db, $sql);
oci_bind_by_name($stmt, "mylastid", $last_id, 8, SQLT_INT);
oci_execute($stmt);
echo "last inserted id is:".$last_id;
힌트: 아래 {your_id_col_name}의 ID 열 이름을 사용해야 합니다.
"RETURNING {your_id_col_name} INTO :mylastid"
언급URL : https://stackoverflow.com/questions/12378424/how-to-get-the-last-row-of-an-oracle-table
반응형
'programing' 카테고리의 다른 글
D3.js: 이미지(데이터에 지정된 파일 이름 포함)를 축의 틱 값으로 사용 (0) | 2023.03.29 |
---|---|
다른 인수로 같은 함수를 두 번 조롱합니다. (0) | 2023.03.29 |
Sublime Text 3에서 JSX 파일에 대해 Emet을 활성화하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
js 스크립트 파일의 WordPress 경로 URL (0) | 2023.03.29 |
$ref 사용에 관한 JSON 스키마 (0) | 2023.03.29 |