input: Write a function to create a REST API using Python and Flask that allows users to perform CRUD operations (Create, Read, Update, Delete) on a database. The API should support the following operations: 1) creating a new record, 2) reading all records, 3) updating a specific record by its ID, and 4) deleting a specific record by its ID. The database should store records with an ID and a name, with the name being unique.
  
  from flask import Flask, request
  from flask_sqlalchemy import SQLAlchemy
  
  app = Flask(name)
  app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
  db = SQLAlchemy(app)
  
  class Record(db.Model):
      id = db.Column(db.Integer, primary_key=True)
      name = db.Column(db.String(120), unique=True)
  
  db.create_all()
  
  @app.route('/records', methods=['GET'])
  def get_records():
      records = Record.query.all()
      return {'records':[record.name for record in records]}
  
  @app.route('/records', methods=['POST'])
  def create_record():
      record = Record(name=request.json['name'])
      db.session.add(record)
      db.session.commit()
      return {'id': record.id}
  
  @app.route('/records/<int:id>', methods=['PUT'])
  def update_record(id):
      record = Record.query.get(id)
      record.name = request.json['name']
      db.session.commit()
      return {'message': 'Record updated'}
  
  @app.route('/records/<int:id>', methods=['DELETE'])
  def delete_record(id):
      Record.query.filter_by(id=id).delete()
      db.session.commit()
      return {'message': 'Record deleted'}
  
  if name == 'main':
      app.run(debug=True)
  
  assert create_record({'name': 'John'}) == {'id': 1}
  assert get_records() == {'records': ['John']}
  assert update_record(1, {'name': 'Jane'}) == {'message': 'Record updated'}
  assert get_records() == {'records': ['Jane']}
  assert delete_record(1) == {'message': 'Record deleted'}
  assert get_records() == {'records': []}
output: 
  @app.route('/records', methods=['GET'])
  def get_records():
      records = Record.query.all()
      return {'records':[record.name for record in records]}
  
  @app.route('/records', methods=['POST'])
  def create_record():
      record = Record(name=request.json['name'])
      db.session.add(record)
      db.session.commit()
      return {'id': record.id}
  
  @app.route('/records/<int:id>', methods=['PUT'])
  def update_record(id):
      record = Record.query.get(id)
      record.name = request.json['name']
      db.session.commit()
      return {'message': 'Record updated'}
  
  @app.route('/records/<int:id>', methods=['DELETE'])
  def delete_record(id):
      Record.query.filter_by(id=id).delete()
      db.session.commit()
      return {'message': 'Record deleted'}
  