Skip to content

Instantly share code, notes, and snippets.

@nezarfadle
Created December 19, 2018 05:54
Show Gist options
  • Save nezarfadle/622b0317e5d864f1f658404c6ddd493d to your computer and use it in GitHub Desktop.
Save nezarfadle/622b0317e5d864f1f658404c6ddd493d to your computer and use it in GitHub Desktop.
CREATE TABLE departments (
	id INT NOT NULL AUTO_INCREMENT,
	name VARCHAR(255) NOT NULL,
	PRIMARY KEY(id)
);

CREATE TABLE employees (
	id INT NOT NULL AUTO_INCREMENT,
	name VARCHAR(255) NOT NULL,
	department_id INT NOT NULL,
	PRIMARY KEY(id),
	FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE CASCADE
);

INSERT INTO departments (name) VALUES ('Administration'), ('Sales');
INSERT INTO employees (name, department_id) VALUES ('John Doe', 1), ('Jane Doe', 1), ('Janie Doe', 2), ('Johnny  Doe', 2);


DROP FUNCTION IF EXISTS getDepartmentId;

DELIMITER $$

CREATE FUNCTION getDepartmentId(depName VARCHAR(255)) RETURNS INT

BEGIN
  DECLARE depId INT;
  SELECT id INTO depId FROM departments WHERE name = depName;
  RETURN depId;
END$$

DELIMITER ;


SELECT * FROM employees WHERE department_id = getDepartmentId('Sales');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment