Để hiểu rõ hơn về trường hợp này tôi xin đưa ra ví dụ sau. Ta có 2 bảng gồm nguoidung và phanquyen. Trong đó:
Bảng nguoidung
tendangnhap | matkhau |
---|---|
nguyenvana | matkhaunguyenvana |
nguyenvanb | matkhaunguyenvanb |
Bảng phanquyen
tendangnhap | machucnang | duocsudung |
---|---|---|
nguyenvana | 1 | 1 |
nguyenvana | 2 | 1 |
nguyenvana | 3 | 0 |
nguyenvana | 4 | 1 |
Khi đó ta muốn tài khoản nguyenvanb có quyền y như quyền của tài khoản nguyenvana.
Để thực hiện việc sao chép này chúng ta sử dụng lệnh select tất cả quyền của tài khoản nguyenvana bao gồm các trường machucnang, duocsudung trong bảng phanquyen rồi insert chúng vào bảng phanquyen nhưng trường tendangnhap là nguyenvanb. Cụ thể như sau:
INSERT INTO phanquyen(tendangnhap, machucnang, duocsudung) SELECT 'nguyenvanb', machucnang, duocsudung FROM phanquyen WHERE tendangnhap = 'nguyenvana';
Sau khi chạy câu lệnh trên, bảng phân quyền sẽ được thêm 4 dòng và trở thành:
tendangnhap | machucnang | duocsudung |
---|---|---|
nguyenvana | 1 | 1 |
nguyenvana | 2 | 1 |
nguyenvana | 3 | 0 |
nguyenvana | 4 | 1 |
nguyenvanb | 1 | 1 |
nguyenvanb | 2 | 1 |
nguyenvanb | 3 | 0 |
nguyenvanb | 4 | 1 |
nosomovo