Tôi có một bảng mysql 'alfa' sẽ chứa khóa chính của một bảng 'beta' trong một cột. Nhưng nếu không thể tìm thấy mục nhập trong 'beta', tôi muốn chèn giá trị vào 'beta' và sử dụng khóa mới trong 'alfa'. Tôi có thể làm điều này trong một truy vấn bằng cách nào đó?chèn nếu không tồn tại khác chỉ cần chọn trong mysql
Tôi hiện có:
INSERT INTO alfa SET c1=(SELECT id FROM beta WHERE name = 'john');
mà hoạt động tốt khi 'john' tồn tại trong bảng, nhưng thất bại khác. Vì vậy, tôi có thể cải thiện nó để cho tên mới được chèn vào và lựa chọn nếu nó không phải là đã có? id được auto_incremented.
Tôi đã cố gắng xem xét IF nhưng chưa tìm ra cách sử dụng IF bên ngoài SELECT, điều đó có khả thi không?
Tôi biết tôi có thể làm điều đó trong một số truy vấn nhưng tôi đang nói chuyện với một cơ sở dữ liệu từ xa để có thể được tốt đẹp để làm điều đó tất cả cùng một lúc.
Ví dụ các bảng có thể đã được tạo ra như thế này:
CREATE TABLE alfa (
c1 int,
PRIMARY KEY (c1)
)
CREATE TABLE beta (
id int auto_increment,
name varchar(255),
PRIMARY KEY (id)
)
nên alfa.c1 nên tham khảo các giá trị beta.id.
Nói tóm lại tôi muốn làm:
chèn id cho john từ bảng beta vào c1 trong alfa, nếu john không tồn tại trong phiên bản beta sau đó chèn john vào phiên bản beta và chèn tự động mới tăng lên id cho john vào c1 trong alfa.
Bạn có thể chỉnh sửa câu hỏi của mình và ít nhất là đặt cấu trúc bảng? Không rõ bạn sẽ có thông tin bổ sung nào bạn cần trong bản beta? Và làm thế nào có thể alfa có thể có bất kỳ chìa khóa, nếu nó chưa được tạo ra trong phiên bản beta? –
Tôi đã cố thêm nhiều thông tin ngay bây giờ. – Zitrax